技术开发 频道

HTML5来了 JavaScript框架何处去

【IT168 分析评论】    HTML5是万维网核心语言的第5个主要版本,早在2004年就由网络富文本应用技术工作组(WHATWG)发起。虽然标准仍在制定之中,但有些浏览器已经能够支持一部分HTML 5的特性了,如Safari 4 beta。

    除了更多的标记以外,HTML 5还添加了一些脚本API:

    ·新增的特性充分地考虑了应用程序开发人员,HTML 5引入了大量的新的Javascript API。可以利用这些内容与对应的HTML元素相关联,它们包括:

    ·二维绘图API,可以用在一个新的画布(Canvas)元素上以呈现图像、游戏图形或者其他运行中的可视图形。

    ·一个允许web应用程序将自身注册为某个协议或MIME类型的API。

    ·一个引入新的缓存机制以支持脱机web应用程序的API。

    ·一个能够播放视频和音频的API,可以使用新的video和audio元素。

    ·一个历史纪录API,它可以公开正在浏览的历史纪录,从而允许页面更好地支持AJAX应用程序中实现对后退功能。

    ·跨文档的消息传递,它提供了一种方式,使得文档可以互相通信而不用考虑它们的来源域,在某种程度上,这样的设计是为了防止跨站点的脚本攻击。

    ·一个支持拖放操作的API,用它可以与draggable特性相关联。

    ·一个支持编辑操作的API,用它可以与一个新的全局contenteditable特性相关联。

    ·一个新的网络API,它支持web应用程序在本地网络上互相通信,并在它们的源服务器上维持双向的通信。

    ·使用JavaScript API的键/值对实现客户端的持久化存储,同时支持嵌入的SQL数据库。

    ·服务器发送的事件,通过它可以与新的事件源(event-source)元素关联,新的事件源元素有利于与远程数据源的持久性连接,而且极大地消除了在Web应用程序中对轮询的需求。

    最近InfoQ利用电子邮件组织了一次虚拟座谈,主题为JavaScript框架将会如何发展,以便充分利用这些新的API。此次座谈邀请了来自主流JavaScript框架的代表:

    ·Dylan Schiemann,SitePen的CEO,Dojo的共同创建者

    ·Matt Sweeney和Eric Miraglia,来自YUI开发团队

    ·Andrew Dupont,Prototype的核心开发者

    ·Thomas Fuchs,script.aculo.us的创建者,Prototype和Ruby on Rails的核心开发人员

    ·David Walsh,MooTools的核心开发人员

    ·Scott Blum和Joel Webber,GWT的领头人

    下面是问题以及各专家的回答。

    Q:由于HTML 5标准仍在制定之中,大多数开发人员对它的新特性并不熟悉,您认为对于web开发人员,哪些特性是最值得关注的?

    Dylan:HTML 5包含很多东西,其中很多有价值的特性都已经在Dojo这样的框架中实现了。例如,内置的富表单控件将包含多文件上传和数据属性,这样人们就不会再抱怨 Dojo使用非标准的自定义属性了,虽然这些属性也是合法的。最近Peter Higgins为Dojo解析器写了一个补丁,大概有1KB左右的代码量,以便当这些特性添加到浏览器时可以使用它们。对我来说最感兴趣的特性是 WebSocket,它是由Michael Carter提出,并由Orbited最先实现的。WebSocket非常适合那些长连接应用,你可以将它看做是web安全的TCP Socket。

    Matt & Eric:对那些把浏览器当成是应用平台的开发人员来说,HTML 5包含了一些很具创新性的组件。但需要注意的是这有点超出文档语义领域,已经到达DOM API领域了,这不是HTML规范的必须部分。我们希望HTML 5规范能够限制在对文档语义的增强和精化上,而把对行为API的规定留给其它规范。

    一般来说,开发人员应该知道HTML5提供的以下HTML相关的特性:

    ·反对使用仅用于显示的元素和属性

    ·更多有语义的元素

    ·更多种输入控件和语义

    ·自定义数据属性

    开发人员看起来对HTML 5中的DOM API很感兴趣,如果它们最后能够被实现,其中的某些特性确实能够丰富我们的工具箱,成为很重要的工具。最早被浏览器厂商实现的2D绘图API(通过 Canvas元素)以及客户端存储API已经引发了广泛的关注,这些关注与浏览器厂商在标准确定之前就率先实现有关。但是还有很多其他的重要变化目前也在草案之中:

    ·Iframe 沙箱

    ·支持"getElementsByClassName()"

    ·"classList" API

    ·音频和视频(通过Audio和Video元素)API

    ·离线web应用API

    ·编辑(通过contentEditable属性)API

    ·跨文档消息API

    ·服务器端事件API

    HTML 5试图解决一些重大的问题,而且解决的不错,比我们上面列出的还要多。

    Andrew:“web存储”(客户端数据库)会被广泛使用——很多网站已经开始好好地利用它了。新的form控件(Web Forms 2)从一开始就存在于标准之中,我都等不及赶快使用了。服务器发送事件可以用来构造纯粹的“推”服务程序,而不需要依赖Ajax的不断轮询或不稳定的长连接。我还喜欢自定义数据属性,虽然相比之下,这只是一个不太重要的特性。

    Thomas:除了离线应用特性(主要指持久化存储),我认为VIEDO和AUDIO标签是最重要的新特性,因为我们终于可以离开烦人的 OBJECT和EMBED了。当然这还需要一段时间,直到所有浏览器都支持,不过这确实是朝着正确的方向在发展,而对所有非正式标准的标准化工作也会让浏 览器表现得比现在更好。一个容易被忽略的特性是web应用程序能够注册协议和媒体类型,以使它们自己成为默认处理程序,就像桌面应用程序一样(但是从UI 的角度看,仍有很多阻碍,因为对计算机不甚了解的用户不懂什么是“协议”或者“媒体类型”)。

    David:除非被广泛支持,否则没有哪个HTML 5的特性是非常值得关注的。这些概念值得去实现,但在只有少数几个浏览器支持的情况下使用是不明智的。这就是我们不使用querySelectorAll 的原因:浏览器厂商的不同实现会导致更多针对浏览器的hack,而不是简单的避免使用QSA。

    Scott & Joel:在HTML5中我最关注的是那些现在就可以使用,而不需要开发人员额外创建不同版本程序的特性。我对其 中的数据库和缓存API特别感兴趣,程序可以真正支持在线和离线两种模式了。另外对于移动web开发人员来说,HTML5提供了大量特性来处理低速和连接 不稳定的移动网络。

    另外一些HTML5的特性也很让人激动,例如<canvas>、<audio>和<video>,这些功能现在还需要插件来实现。目前这些标签还没有被主流浏览器广泛支持,但是随着浏览器支持的增强,使用的人也会增加。

0
相关文章