拜读了 Peter Lubbers 的《HTML5程序设计-第二版》。原以为HTML5只是HTML4的升级版,直接被颠覆了。HTML5可以说有革命性的意义,有点像把本地应用的功能特性搬到网上的感觉。
1.canvas,提供强大的绘图能力,是基于位图的,提供基本的API,不能与其交互(有利有弊),已被引用到诸多领域,比如游戏,图表等等。网上已有很多基于canvas的开源库,这篇文章还对比了开源库的情况,网址: http://www.tuicool.com/articles/F3IZJj。基于canvas的游戏引擎也有不少,如Cocos2D.js,DOM等。
2.svg,是基于矢量图的,是标记语言,能提供HTML一样的交互能力,比如复制,选择。有些图标库,提供svg的格式,放缩图片质量不降低。
3.Audio和Video,提供两个应用音频和视频的tag,和相应的API。提供统一和简单的接口,取代第三方控件。
4.Geolocation API,提供统一简单且保证隐私的接口获取用户的地理位置,针对基于地理位置的App。
5.getMessage API,用于标签,窗口之间通讯。
6.XMLHttpRequest Level 2,异步获取非同源网站的信息。
7.WebSockets API,用于实时通讯。
8.Forms API,提供新的表单控件,如password, tel, url, emial, number, search, range等等,提供基本的表单验证机制和相应的接口。
9.拖放功能。
10.Web Workers API,JS是单线程,大量的计算,会导致页面无响应,影响用户体验。提供多线程的机制,充分利用多核处理器,后台负责计算。getMessage负责前后台通讯。
11.Web storage API,提供localStorage, sessionStorage, indexed Database等存储机制。
12.构建离线应用。
还有一些正在研究的项目,可能现在浏览器已经很好的支持了。
1.WebGL
2.设备,如摄像头,麦克风,虚拟现实设备
3.音频数据API,音频编辑功能,如音频转化为文字
4.触屏设备事件
5.P2P网络