一、增加结构语义化的标签
- section
- articel
- aside
- header
- hgroup
- footer
- nav
- figure
- command
- progress
- time
- ruby
- rt
- rp
- mark
- wbr
- ...
二、增加的表单类型
inputy元素增加了以下类型
- url
- number
- range
- Date pickers
- search
- color
全新增加的表单元素标签
- datalist
- keygen
- output
HTML5还增加了一些form和input的属性,详见参考。
三、增加的富客户端标签
媒体
- video
- audio
- embed
图像
- canvas 画布
- SVG 矢量图。比画布更复杂,明显不同是支持事件处理
四、更有用的新Javascript API
1、Web Storage
新Web存储方案,包括localStorage和sessionStorage。关于更多Web存储可见Web存储。
2、Application Cache
应用程序缓存,在html标签处添加manifest属性,浏览器会在网络良好时创建manifest缓存文件,离线时读取manifest文件,以实现离线浏览。
3、Web Socket
最小的开销(如没有HTTP首标)实现套接字的全双工通信,目前并不完全支持。为Node.js而生的好用的包:socket.io。
4、SSE
服务器推送事件(server sent event)。服务器单向客户端推送的通信模式。
SSE与Web Scoket都为低时延通信而生,但两者有明显不同。SSE基于现有HTTP/HTTPs协议工作,是文本协议。而Web Scoket更复杂一些,目前需要服务端再做一些工作才能运作(socket.io是个好选择),并且它是二进制协议。效率上,Web Scoket开销更小。
5、Web Workers
HTML中的JavasaScript是阻塞的,执行时页面就不可响应。Web Worker是执行在后台的JavaScript。如在HTML页面指定一个js脚本创建Worker对象w,w监听js中发送的消息。js脚本可进行大量运算却不会阻塞HTML页面。
6、Geolocation 地理位置API
7、Device Orientation 设备方向API
五、废除的标签
1、能用css代替的元素
basefont、big、center、font、s、strike、tt、u。这些元素纯粹是为画面展示服务的,HTML5中提倡把画面展示性功能放在css中统一编辑。
2、不再使用frame框架。
frameset、frame、noframes。HTML5中不支持frame框架,只支持iframe框架,或者用服务器方创建的由多个页面组成的符合页面的形式,删除以上这三个标签。
3、只有部分浏览器支持的元素
applet、bgsound、blink、marquee等标签。
4、其他被废除的元素
- 废除rb,树勇ruby替代。
- 废除acronym使用abbr替代。
- 废除dir使用ul替代。
- 废除isindex使用form与input相结合的方式替代
- 废除listing使用pre替代
- 废除xmp使用code替代
- 废除nextid使用guids
- 废除plaintex使用“text/plian”(无格式正文)MIME类型替代。
参考:
W3School
《HTML5和JavaScript Web应用开发》 Wesley Hales
《HTML5数据推送应用开发》 Darrren Cook