浅谈HTML5的新特性
2014年10月29日,W3C宣布,经过接近8年的艰苦努力,HTML5标准规范终于制定完成。
HTML5将会取代1999年制定的HTML 4.01、XHTML 1.0标准,使网络标准达到符合当代的网络需求,为桌面和移动平台带来无缝衔接的丰富内容。
HTML5 的新特性
① 语义特性(Semantic)
HTML5赋予网页更好的意义和结构。
② 本地存储特性(OFFLINE & STORAGE)
基于HTML5开发的网页APP拥有更短的启动时间,更快的联网速度,这些全得益于HTML5 APP Cache,以及本地存储功能。
③ 设备访问特性 (DEVICE ACCESS)
从Geolocation功能的API文档公开以来,HTML5为网页应用开发者们提供了更多功能上的优化选择,带来了更多体验功能的优势。HTML5提供了前所未有的数据与应用接入开放接口。使外部应用可以直接与浏览器内部的数据直接相连,例如视频影音可直接与microphones及摄像头相联。
④ 连接特性(CONNECTIVITY)
更有效的连接工作效率,使得基于页面的实时聊天,更快速的网页游戏体验,更优化的在线交流得到了实现。HTML5拥有更有效的服务器推送技术,Server-Sent Event和WebSockets就是其中的两个特性,这两个特性能够帮助我们实现服务器将数据“推送”到客户端的功能。
⑤ 网页多媒体特性(MULTIMEDIA)
支持网页端的Audio、Video等多媒体功能, 与网站自带的APPS,摄像头,影音功能相得益彰。
⑥ 三维、图形及特效特性(3D, Graphics & Effects)
基于SVG、Canvas、WebGL及CSS3的3D功能,用户会惊叹于在浏览器中,所呈现的惊人视觉效果。
⑦ 性能与集成特性(Performance & Integration)
没有用户会永远等待你的Loading——HTML5会通过XMLHttpRequest2等技术,解决以前的跨域等问题,帮助您的Web应用和网站在多样化的环境中更快速的工作。
下面分别对这七个新特性进行研究:
① 语义特性(Semantic)
HTML4中的内容标签级别相同,无法区分各部分内容。
而HTML5中的内容标签互相独立,级别不同,搜索引擎以及统计软件等均可快速识别各部分内容。
这些标签在新闻类网站,博客类网站很有用。
最大的问题就是当使用这些新的语义元素时,那些不支持的浏览器如何处理这些元素。
② 本地存储特性(OFFLINE & STORAGE)
HTML5提供了网页存储的API,方便Web应用的离线使用。除此之外,新的API相对于cookie也有着高安全性,高效率,更大空间等优点。
HTML5离线存储包含 应用程序缓存
,本地存储
,索引数据库
,文件接口
。
(1)应用程序缓存(Application Cache)
应用程序缓存为应用带来三个优势:
离线浏览 – 用户可在应用没有因特网连接时进行访问。
速度 – 已缓存资源加载得更快。
减少服务器负载 – 浏览器将只从服务器下载更新过或更改过的资源。
Demo链接:http://www.ganecheng.tech/welcome_offline.html
(2)本地存储(Local Storage)
最早的Cookies自然是大家都知道,问题主要就是太小,大概也就4KB的样子,而且IE6只支持每个域名20个cookies,太少了。优势就是大家都支持,而且支持得还蛮好。
首先自然是检测浏览器是否支持本地存储。
在HTML5中,本地存储是一个window的属性,包括localStorage和sessionStorage。
从名字应该可以很清楚的辨认二者的区别,前者是一直存在本地的,后者只是伴随着session,窗口一旦关闭就没了。二者用法完全相同。
(3)索引数据库(Indexed DB)
IndexedDB则更适合存储如广告等数据(它更象一个真正的数据库)。
一般来说,有两种不同类型的数据库:关系型和文档型(也称为NoSQL或对象)。
关系数据库如SQL Server,MySQL,Oracle的数据存储在表中。文档数据库如MongoDB,CouchDB,Redis将数据集作为个体对象存储。
IndexedDB是一个文档数据库,它在完全内置于浏览器中的一个沙盒环境中(强制依照(浏览器)同源策略)。
如果您的应用程序真正需要一个客户端数据库,你想要达到的最高级别的采用可能,当IndexedDB不可用时,
也许您的应用程序可能看起来需要选择使用Web SQL来支持客户端数据架构。
(4)文件接口(File API)
③ 设备访问特性 (DEVICE ACCESS)
大致包含 地理位置API
,媒体访问API
,访问联系人及事件
,设备方向
。
比如说:地理定位、获取麦克风、摄像头、获取重力感应、摇一摇功能……
④ 连接特性(CONNECTIVITY)
HTTP是无连接的,一次请求,一次响应。想要实现微信网页版扫一扫登录,网页版微信聊天的功能,需要使用轮询的方式达到长连接的效果,
轮询的大部分时间是在做无用功,浪费网络,浪费资源。
现在HTML5为我们带来了更高效的连接方案 Web Sockets 和 Server-Sent Events 。
⑤ 网页多媒体特性(MULTIMEDIA)
看的出来HTML5原生支持音视频让W3C很兴奋。也是广大开发者多年的期待。终于可以将Flash踹入茅坑了。
Audio和Video标签
⑥ 三维、图形及特效特性(3D, Graphics & Effects)
大致包含SVG(可缩放的矢量图形), Canvas(画布), WebGL(网页图形库,3D绘图标准), 和 CSS3 3D。
Canvas 与 SVG 的比较
Canvas
-依赖分辨率
-不支持事件处理器
-弱的文本渲染能力
-能够以 .png 或 .jpg 格式保存结果图像
-最适合图像密集型的游戏,其中的许多对象会被频繁重绘
SVG
-不依赖分辨率
-支持事件处理器
-最适合带有大型渲染区域的应用程序(比如谷歌地图)
-复杂度高会减慢渲染速度(任何过度使用 DOM 的应用都不快)
-不适合游戏应用
⑦ 性能与集成特性(Performance & Integration)
性能与集成特性主要包括两个东西,Web Workers (网页后台任务)和 XMLHttpRequest 2(新的Ajax)。
参考链接:
http://blog.csdn.net/gane_cheng/article/details/52819118