A.3 常见的非HTML5技术
一些流行的规范和技术常常因为它们优秀的功能而被误解为HTML5技术。虽然这些技术差不多和HTML5规范同时出现,而且经常出现在HTML5技术展示网站和HTML5相关书籍(也包括这本书)中,但由于之前给出的定义,它们并不属于HTML5。按照Bruce Lawson的说法,最好将这些Web开发技术称为“HTML5的盟友”。
A.3.1 CSS3
CSS3为Web开发提供了一些非常出色的功能,比如过渡和3D变换。但它却是一个完全独立于HTML5的规范。本书并没有专门地介绍CSS3,但书中的所有应用都用到了这一技术。
要想较好地学习CSS3,可以看一下Hello! HTML5 & CSS3(Rob Crowther,Manning,2012)以及Sass and Compass in Action(Wynn Netherland、Nathan Weizenbaum、Chris Eppstein和Brandon Mathis合著,Manning,2013)这两本书。
A.3.2 Geolocation
许多早期的HTML5 demo都展示了Geolocation API,但该API却并不属于WHATWG的HTML Living Standard或W3C的HTML5 family of specifications。
W3C制定了关于Geolocation API的规范,第3章将对此给予简要介绍。
A.3.3 存储
上一节已经介绍了存储。有两种并不属于HTML5规范的关键存储技术:IndexedDB和File System API。在W3C规范中,这两项技术表现为4种规范:Indexed Database API、File API、File API: Directories and System和File API: Writer。
第5章介绍了IndexedDB,而第3章则介绍了File API。
A.3.4 WebGL
WebGL技术基于OpenGL。Khronos联盟组织将OpenGL应用于浏览器中,结果就产生了WebGL技术。所有的桌面浏览器都支持WebGL,甚至连微软也一改最初的反对态度,在IE11中实现了WebGL。
A.3.5 Node.js
许多人都误会了Node.js(经常简称为Node),错把这个新的软件平台当成HTML5的一个API。虽然Node使用了新兴的Web标准技术,并改善了许多HTML5 API的使用方式,但它仍然不是一种Web标准。它运行在谷歌的V8 JavaScript引擎上,主要有Joyent负责开发。本书介绍了一些简单的Node用法,更多有关Node的知识可参考Node.js in Action (Mike Cantelon、TJ Holowaychuk与Nathan Rajlich合著,Manning,2013)。第4章与附录E都介绍了有关Node的内容。
A.3.6 jQuery与其他一些JavaScript库
它们最初所要解决的问题是:针对AJAX的基础,XHR对象,如何在其不同的浏览器实现之上提供一种兼容层,每一种库都添加了各自独有的功能。Prototype.js添加了一些功能,鼓励一种类似Ruby的编程风格。Dojo的做法也差不多,只不过差别在于风格转向了Python。发展了很多年之后,跨浏览器兼容性的终极方案面世了,这就是jQuery。HTML5无法取代像jQuery这样的库,但它能让它们变得更高效。通过制定HTML5的相关规范,使得浏览器行为变得标准化,全方面的努力可以提高浏览器的兼容性,从而削弱这些库的作用和地位。HTML5已经取代的一些JS库功能如表A-2所示。