离线 Web 应用程序定义了一个应用程序缓存声明,它允许网站或应用程序开发人员设置一组文件,可以在不连网的情况下运行应用程序。此规范与网络存储规范的数据存储功能相结合,能够提供强大的离线功能。
内联(inline)内容编辑HTML5 定义了新的 API 以简化内容编辑。尽管已经有熟知的 JavaScript 实现,但本地 API 能提供连续的有效的用户体验。
拖放新的拖放 API 可以通过从桌面拖放到 Web 的方式上传文件。此功能的实际示例可在 Google Gmail 产品中看到,在 Mozilla Firefox 和 Google Chrome 中都可以实现。
历史 APIAjax 时代就有可用性一致的问题,富含 Ajax 的应用程序会破坏标准历史栈。尽管现在有基于脚本的解决方案和通用模式来处理动态状态,但 HTML5 历史 API 与这些临时方案相比,却是可喜的改进。HTML5 在以上功能的基础上还增加了导航历史的功能,它包含了一个方法,可以将条目添加到历史中,并在用户点击后退按钮时作出适当响应。
微数据(Microdata)HTML5 定义了一个标准化方法来标记 HTML 文档主体的元数据。对于使用过微格式(如 hCard 和 hCalendar) 的人来说,对微数据会很熟悉,但其中还有一些重要的不同之处。最重要的是,微数据将相关信息从此前微格式控制的类移到了新的 itemprop 属性中。
另外,此标准添加了其他能精确定义微数据格式的属性,以及一个可以直接通过程序访问微数据的方法:
HTML5 中属于单独的规范和工作组的技术多项技术已经成熟,脱离了 HTML5 规范,形成自己的文档。还有其他一些,也从 HTML 脱离出来,归类为 “Web 平台”。
SVG也许归类到 HTML5 大杂烩中最奇怪的技术就要算 Scalable Vector Graphics (SVG) 了。SVG 是用 XML 定义的矢量图形语法。自从 1999 年起,就由 W3C 开始开发 SVG,因此将它作为 “新” 内容或 HTML5 一部分的一个延伸。
但依然值得为重新发掘 SVG 而感到高兴,因为它实际推动了标准。主要浏览器的最新版本都提供或多或少的支持,而有些库,如 Raphael.js 中还有支持旧版本 Internet Explorer 的 API。
Canvas 2D 环境HTML5 时代早期的明星,Canvas 元素和相关 API,作为 Apple 中对 HTML 的扩展,又有了活力。如前所述,它一开始作为主要的 HTML5 规范的一部分。在 W3C 中,它在单独文档中。
Canvas 2D 环境提供了可在浏览器中绘制二维图像和位图的脚本化接口。目前的应用已非常广泛,从图形库到游戏引擎,它已经成为用来发布用户前台的流行系统,甚至成为过程编程语言转换成 JavaScript 的转接口。由于目前对探索 Canvas 的关注,ExplorerCanvas 库已支持旧版 Internet Explorer。
地理位置Geolocation API 是检索设备地理位置的标准接口。它提供了一个 window.geolocation 对象,此对象中又提供了通过使用地址信息服务器来找到设备位置的方法。位置信息可以从很多数据源获取,包括 IP 地址、设备 GPS、Wi-Fi 和 Bluetooth MAC 地址、无线射频 ID(RFID) 和 Wi-Fi 连接位置。
Web 存储Web Storage 规范定义了一个 API,可对 Web 浏览器的中的键-值进行连续存储。 此规范与 cookies 的功能类似,但有了很大的改进。
存储有两种形式:sessionStorage 与 localStorage。每一个都提供了类似的方法来管理条目(setItem()、removeItem() 和 getItem()) 和清除整个存储(clear())。Session 存储是用来保存当前浏览器会话。Local 存储用来对网站收藏或其他用户数据进行长期存储。还可以监听存储事件,以便监控存储活动并对存储活动作出响应。
对于现在就想体验此功能的用户,Persist.js 库提供了完善的跨浏览器解决方案可在所有主要浏览器中使用 Web 存储或等效的功能。
还有另外两个规范可与 Web Storage 同时使用:
此规范提供了操作 Web 应用程序中文件的 API。加上其他一些新兴和成熟技术,如 XMLHttpRequest、拖放和 Web Workers,File API 能够提供比目前可用技术更强大的 Web 和桌面交互功能。 与简单文件上传输入元素将文件传递给 Web 服务器进行处理或复杂的 Flash 界面不同的是,File API 允许直接访问浏览器文件数据。
WebSocketWebSocket API 可以通过一个 TCP 端口在 Web 浏览器和 Web 服务器之间同时双向通讯。在实现方面,WebSocket 还可以走得更远一些,它支持最新版本 Firefox、Opera、Chrome 和 Apple Safari,但已发现的安全漏洞使得它在 Firefox 和 Opera 中默认禁用。
服务器发送的事件此规范定义了一个 API,可以打开一个 HTTP 连接,以 DOM 事件形式接收来自服务器的推送通知。本规范改变了目前在固定时间间隔轮询服务器进行更新的模式,节约了大量不需要的请求和相关的处理器时间和带宽。
WebGLWeb-based Graphics Library (WebGL) 增强了JavaScript,它具有在浏览器中创建三维交互图形的功能。WebGL 是 canvas HTML 元素的上下文。此规范与 2011 年 3 月推出 1.0 版,由非营利的 Khronos Group 管理。
XMLHttpRequest Level 2XMLHttpRequest Level 2 规范通过一些新特性增强了核心 XMLHttpRequest 对象。其中最有趣的大概就是 Cross-Origin Resource Sharing 了,它一种绕过同源安全策略的安全方式,可以实现 XMLHttpRequest 与第三方服务器交互。目前,XMLHttpRequest 只能与相同协议的服务器通讯。
随着 JSON 和 JSONP 的流行,跨源共享的需要不再像以前一样紧迫,但这会在网站和 mash-up 架构方面显现以前受限于同源策略的机会。
CSS3 的模块化方法对于最新版本的 CSS,工作小组决定不再使用单独的整体规范,而是将其分为单独的文档,称为模块。每个模块都在 CSS,Version 2(CSS2) 中加入了新功能或扩展了一些特性。
有些模块已经很成熟,已经开发了 5 至 10 年(也可能更多年)。在 W3C 的完整性层级中有 推荐建议 或 候选建议。这表示已经基本完成。我们再看一些更有趣、更重要的模块。
选择器CSS 不能没有选择器。选择器用于对 HTML 中的元素进行风格设置。