摘录与访谈: 《HTML5专业开发》

由Peter Lubbers、Brian Albers和Frank Salim编著的《HTML5专业开发》(Pro HTML5 Programming)一书,旨在帮助开发者们构建能够挖掘当今浏览器全部能力的HTML5应用。

该书主要涉及领域有:

  • Communication APIs:探讨构建实时和跨源(cross-origin)通讯的两大基础: 跨文档通讯(Cross Document Messaging)与XMLHttpRequest Level 2。
  • Convas API:介绍有关动态生成与渲染图形、图表、图像和动画的API。
  • Geolocation API:使用这个API,用户便可共享自己的地理位置,并在Web应用的帮助下享用位置感知的服务(location-aware services)。
  • Web Sockets API:定义了一个全双工传输的通讯通道,它在Web之上通过单个套接字进行工作。
  • Web Storage API:探讨HTML5 Web存储(也就是DOMStorage),该API令在多个Web请求间持久化数据变得简单。
  • Web Workers API:该API为Web应用提供了后台处理的能力。
  • HTML5音频与视频:这些是HTML里新添的元素,它们为开发者提供了一套通用的、集成的、脚本式的处理音频与视频的API,而无需安装任何插件。

Apress出版社特许InfoQ发布该书第六章《使用HTML5 Web Sockets API》,并介绍该书作者之一接受InfoQ的访谈。

InfoQ与该作者进行了一系列问答:

InfoQ:你好,Peter!能否简单介绍一下自己,并谈谈你们为什么会写一本关于HTML5的书?

Peter:我在Oracle工作了大约8年,然后在2008年成为Kaazing的第四名员工。从WebSocket API与协议(作为TCPConnection) 被加入到HTML5规范开始,Kaazing就一直涉入其中,并且对HTML5的发展起到了重要作用。早在2008年,我们就已经开始提供有关 WebSocket的培训了,那时还没什么浏览器想到要支持它。我们的WebSocket网关能够完全(并且迅速)地模拟标准,所以你在IE6这种老式浏 览器上也可以使用HTML5 WebSockets。

在Kaazing,我负责文档与培训的工作。 Kaazing的创始人(Jonas Jacobi与John Fallows)是我在Orcale的同事,我曾帮助他们编校了2006年Apress出版的《JSF与Ajax》一书。正是他们建议我们三人—— Brian Albers(Kaazing的开发副总裁)、Frank Salim(Kaazing的“编码机器”)和我——写一本有关HTML5 WebSockets的书,可是我们发现市面上并没有HTML5的书,而且有关HTML5开发的资源也很少。

本书不是HTML5的入门书,也不是回顾HTML历史的书。 现在,我想我们都知道HTML5是个大项目,而本书会帮助你使用目前大多浏览器已采用的简单而又强大的API。

InfoQ:HTML5是什么?它要解决什么问题?你能介绍一下HTML5的各个部分以及它们之间的联系吗?

Peter:HTML5不仅仅是HTML的更新换代,它已经孕育很久了。之前最新的HTML(4.01)还是10年前发布的!

当我们谈及HTML5时,实际上它指的是包括HTML、CSS和JavaScript在内的一套技术组合。比如说,HTML5引进了新的画布 (convas)和视频元素。虽然它们自身已经非常强大,但你需要将其与JavaScript和CSS一同使用,其全部能力方能显现。

HTML5讲究简单性。它的一个理念叫做“沿着脚印铺路(pave the cowpaths)” [译注:这里字面意思为“沿着牛走过的脚印铺路”,在这里的意思是,如果一种做法已在开发者中间被广为采用,那么与其禁止它或发明新的做法,还不如考虑接 受它并采纳为标准],这意味着它致力于让之前困难的事情变得非常简单。HTML5还讲究原生的(native)浏览器功能。在HTML5里,你可以完成之 前依赖于插件(如Flash和Silverlight)或者必须用复杂的JavaScript脚本才能做到的事情。比如,HTML5引进了原生的表单控件 类型(日期、拾色器)与表格验证、原生的套接字(用于全双工通信)、原生的绘图API(SVG、画布)以及内置的位置感知(使用Geolocation API)。

InfoQ:目前的浏览器对各种HTMl5 APIs的支持如何?你认为未来会如何发展?

Peter: 浏览器对HTML5功能特性的支持正在以惊人的速度迅速增加——这是十分令人振奋的。许多流行浏览器(如Chrome、Safari、Firefox以及Opera)已经能够支持75%到90%不等的HTML5特性了,而这个数字还在不断增加。

你可以通过html5test.comcaniuse.com网站来查询你所使用的浏览器支持哪些功能特性;这是检查飞速变化的HTML5支持情况的好地方。

即使是一直处于落后的IE(IE6仅支持3%,IE8支持28%),在IE9中也“翻倍了”,支持将近60%的HTML5特性。其中一些功能还有硬件优化,这将推动其他浏览器加入进来。

InfoQ:你们的书中介绍了好几种HTML5 APIs。你能否举一些例子来说明,它们将如何帮助开发者构建更好的应用?

Peter:当然!Web应用已经越来越与桌面的功能不相伯仲。 比如,在Kaazing,一位非常有才华的同事Frank Salim刚刚使用WebSockets与画布(convas)开发了一款VNC客户端——这在几年前(或者几月前)是无法想象的。

大体说,HTML5便于我们开发出更具状态性和事务性的Web应用。你可以使用WebSockets直接连接到远程服务器,你也可以使用 Geolocation API开发出位置感知的应用,并将他们与Map APIs相结合。你可以使用SVG和画布(convas)开发出令人惊奇的动画游戏(2D;但如果你愿意构建自己的浏览器,也可以是3D)。

各个APIs都很强大,你只要将他们结合起来,就可以开发出非常棒的应用。比如,HTML5支持用新的应用缓存(Application Cache)来开发脱机应用,也支持客户端Web存储(甚至是持久化存储,称为localStrorage),那么当然,你可以将脱机应用与存储漂亮地结 合起来;你可以进行脱机检查,而不必依赖不保险的浏览器缓存能力(点击“返回”后,之前的页面就没了)。现在,用户可以按他们所习惯的方式来使用整个应用 了:尚未发出的数据被保存在客户端,待应用检测出你在线后,数据才被发到服务端。

InfoQ:你认为目前HTML5中还缺少什么?还应该添加些什么?是否有新的APIs出现?现有APIs有修改吗?

Peter:当然,还有很多东西需要打磨,浏览器也需要关注于互操作性。我们不应忽视HTML5原始的设计理念。我觉得,对各种 APIs的二进制支持(跨文档通讯与 WebSockets)是需要改善的,还有对3D画布的支持也需改进。此外,不同特性的无障碍性(accessibility)还需改善。

WebGL 不仅将OpenGL引入到JavaScript中,它也创造了一个通用的二进制数据API。高速的3D API需要二进制缓存,所以有人提议新推出一套用于操作二进制数据的API,称为TypedArray。如果该提议被采纳,TypedArray将在 HTML5中无处不在。

InfoQ:人们如何开发HTML5应用?有哪些主要工具可用于开发、调试和测试应用?

Peter:目前还没有很多集成开发环境(IDE)支持HTML5。DreamWeaver CS5的HTML5包和Visual Studio都提供了语法补全支持,不过你也可以直接使用文本编辑器(如UltraEdit)或通用的IDE(如Eclipse)。

如今的浏览器调试功能非常强大,浏览器厂商们都在致力于为它们的开发工具增添一些很酷的功能。比如,Google Developer Tools与Speed Tracer、Safari Web Inspector、Firefox Firebug以及Opera Dragonfly,这些都是功能强大的浏览器调试工具。如果你有一段时间未跟踪此领域的话,你会对如此多的强大功能感到非常惊讶。

我发现我的浏览器每周都有功能更新。比如,Chrome刚刚支持对脱机应用的调试以及应用缓存的查看功能,此外,还可以通过控制台来访问Web SQL数据库——太强了!

InfoQ:对于准备使用HTML5进行项目开发的团队,你有什么建议?有什么特别需要注意的地方吗?有什么“最佳实践”吗?

Peter:不要相信任何炒作,然后,再买本《HTML5专业开发》就没问题了😉

说真的,现在有很多不错的资源。可以看看Google的html5rocks.com网 站。另外,Paul Irish的html5boilerplate工具也很不错,它将多年经验融汇其中,并且采用了可以令你的网站与老式浏览器完美兼容的技巧与技术(一般来 说,这是个大问题)。我认为,html5boilerplate工具的文档(注释与代码片段)里包含了目前最好的最佳实践。此外,还有很多其他好网站也可 参考。

我也在全球范围内提供HTML5培训(HTML5快速追踪、Bootcamps以及WebSocket课程),所以,如果需要快速入门的话,尽管联系我。

InfoQ:对于HTML5新手来说,这本书哪些部分最有价值?对于有经验的开发者呢?

Peter:HTML5具有强大的简单性。

正像本书书名一样,《HTML5专业开发》面向的读者群是对HTML和JavaScript有一定了解、并且希望使用新的HTML5 API的开发者。

不过,由于HTML5讲究简单性,所以对于HTML、JavaScript和CSS新手来说,HTML5实际上要比看起来容易得多。我们希望本书能引发大家按有创意的方式来使用HTML5 APIs。

《HTML5 专业开发》讲解了如何使用新的HTML5 APIs,并通过实际例子展示了HTML5的功能特性,以及目前的浏览器支持其中哪些。我们挑选出了一些最常用的、实用而且强大的HTML APIs进行讲解,以便于读者快速上手。你将学习到如何使用HTML5的各种功能特性来开发Web应用,比如地理位置、Web存储、 WebSockets、Web Workers、画布、音频和视频等等。

你会看到这些功能如何结合起来,无缝地与其他标准Web技术工作。我们的例子使用了HTML5文档,并充分利用了浏览器的基本功能。

你可以在InfoQ找到更多关于HTML5的信息。

This entry was posted in 未分类. Bookmark the permalink.

发表评论

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / 更改 )

Twitter picture

You are commenting using your Twitter account. Log Out / 更改 )

Facebook photo

You are commenting using your Facebook account. Log Out / 更改 )

Google+ photo

You are commenting using your Google+ account. Log Out / 更改 )

Connecting to %s