谁在鼓吹不唐突性(Unobtrusiveness)?

Posted by admin | JavaScript, 原创 | 星期三 14 11月 2007 1:39 下午

Chris Heilmann 的文章和书

Chris Heilmann是WaSP(Web 标准项目)之DOM Scripting任务组成员之一。

Unobtrusive这个概念,我最早见于《Beginning JavaScript with DOM Scripting and Ajax》一书作者Chris Heilmann的文章:unobtrusivejavascript。去年夏天,我还翻译了他的一篇长文章,在这篇文章中我也首次看到了progressive enhancement和graceful degradation的概念,这篇文章就是:From DHTML to DOM Scripting译文PDF版)。

除了在以上文章中宣传Unobtrusive的概念,Chris Heilmann还在上面提到的书中宣传了这一概念。

Jeremy Keith的书和Hijax概念

在我翻译的《Advanced DOM Scripting》这本书中,也提到了Jeremy Keith的Hijax设计思想。他和Chris Heilmann一样,也是WaSP之DOM Scripting 任务组成员之一,而且是领导人。

Jeremy Keith 在它的《DOM Scripting》一书中提到了Unobtrusive的概念。而他提出的Hijax的要概念,侧重于Unobtrusive Ajax。

而所谓Hijax的思想,肇始自他自己发表于2005年3月8日的一篇文章Progressive enhancement with Ajax。之后,在写《DOM Scripting》这本书时,Jeremy Keith在2006年1月1日的同名文章中提出了Hijax的思想。根据他自己的描述,所谓Hijax就是一种贯彻了”progressive enhancement automatically guarantees graceful degradation(渐进增强自动保证平稳退化)”思想的Ajax程序设计开发理念,即:

1.首先,构建一个老式的网站,通过超链接和表单向服务器传递信息。服务器根据每次请求返回完整的新页面。
2.然后,通过JavaScript拦截那些链接和表单的提交动作,并代之以XMLHttpRequest对象来传递相应的信息。而且,你还能选择只更新页面的某一部分,而不是更新整个页面。

于是,Jeremy Keith说他甚至都为这种技术想好了一个光彩夺目的专用术语:Hijax。事实上,根据上面的描述,Jeremy Keith兴高采烈地向我们推荐的他的Hijax新概念,其实是借用了hijack(劫持)一词的发音和含义,而且的确是一语双关的好创意!

随后,他说由于Hijax涉及到服务器端架构的模块化:既能返回整个页面,也能返回部分页面内容。所以并没有说说那么简单。而且,虽然在通过Ajax拦截请求之前,只需简单地构建老式的基于页面提交的网站,但同时却还要考虑服务器端架构有点自相矛盾(inherent paradox),但他认为只要像下面这样思考就没问题:

1. 开始时规划Ajax
2. 结束时实现Ajax

也就是说,先使用老式的服务器端技术和老式的通过刷新显示更新信息的网页构建一个老式的Web应用程序。然后,在此基础之上再通过JavaScript来添加更漂亮、更丰富、也更具可用性的功能。通过JavaScript拦截默认动作,并调用XMLHttpReqeust对象的方法发送请求,相当于为Web应用程序添加了一个实现了即时交互(异步传输数据)的中间层。而且,这样一来Web应用程序可以在不支持JavaScript的浏览器中做到平稳的退化,而不失其可用性。

2007年3月,Jeremy Keith在他的另一本书《Bulletproof Ajax》中详细阐述了他的Hijax思想。

其他相关的文章和书

在2007年10月15日,Jeremy Keith可能是突然发现了O’Reilly出版了一本Short Cut,叫《Unobtrusive Ajax》,于是他发了一通感慨:http://domscripting.com/blog/display/107 。他说,《Unobtrusive Ajax》在7月份出版时,我的雷达可能出了点故障。这本书的作者是Jesse Skinner(右图),而技术编辑则是Christian Heilmann。而且读者要想看以往的版本,则只能自己打印(否则就要掏钱)。虽然我没看这个小册子,但从它的简介来看,好像也提供了与Hijax类似的建议:

这本小册子(一时不知short cut如何译为好)聚集于不唐突地使用Ajax和JavaScript的现实利益,向读者展示了不唐突的Web开发和渐进增强其实对Web开发者和Web用户都有好处。从中你可以看到构建不唐突的Web界面的许多简单示例。并且,你会发现创建任何人都可以使用的Web应用程序实际上真的很简单。

最后,Jeremy Keith提供了这本小册子的原型–a presentation from The Ajax Experience in 2006,即Jesse Skinner在2006年发表的一套幻灯片。

此外,同时WaSP之DOM Scripting 任务组成员之一的Peter-Paul Koch(左图)在他的大作《PPK on JavaScript》一书中无疑也宣传了Unobtrusive scripting。此外,在他的个人网站www.quirksmode.org中,你可以看到有关CSS和JavaScript的大约180余篇文章、技巧、提示。是JavaScript和CSS学习者非常好的资源。强烈建议一下,我看过几篇,觉得PPK的语言风格非常适合中国人的表达和阅读习惯——特别是英文不是特别好的朋友。另外,他的网站中还包含博客和系统bug报告。

John Resig
然后,就是jQuery这个JavaScript库的创建者、年轻的John Resig(右图)了。他现在供职于Mozilla Corporation ,是一名JavaScript Evangelist(JavaScript高级讲师)。他的处女作《Pro JavaScript》在Amazon上获得了最高的五星级,而且还备受读者赞誉。当然,John Resig在这本书中也没少宣传Unobtrusive。

PS:去年我用一周时间翻译了jQuery 1.1 API 文档(没译Ajax部分),放在了自己的网站上。结果被号称jquery中文社区的一个网站(bbs.jquery.org.cn)给“偷”走了——因为他们没有注明出处。但有些朋友从我里下载之后,却注明了出处——为之漫笔译。后来发现有些热心的朋友还把我翻译的版本做成了chm文件,里面仍然没有Ajax部分。今天只是提到了jQuery,我顺便说一下这事。说起我发现jQuery还要感谢去年发生在台湾海峡的地阵,当时海缆被震断了,Yahoo!为此在邮箱主页上发布了一个动态显示的通告。当时的通告是在页面载入完成后大约1秒钟以渐变和动画形式出现在页面顶部的,而且显示了大约几秒中又自动消失了。这个动画效果吸引了我,于是我开始查看它的源码……最后“认识”了精巧、美妙的jQuery,特别是它优雅的方法连缀能力,更令我如获至宝、兴奋不已!后来我查了很多jQuery的资料,发现它的文档没有汉化,就还投入时间翻译了它的API。当然,那个API翻译的并不好,有时间我会再重新翻译,而且现在已经到了1.2版了,有很多改进。想学习jQuery的朋友,我想最好是从一本电子杂志入手,即Visual jQuery,大家可以在http://www.cn-cuckoo.com/jquery-1_1-api-cn下载到。

总而言之,无论是Jeremy Keith、Chris Heilmann、Peter Paul Koch,还是Jesse Skinner、John Resig,他们共同的使命都是推动标准化,从而发明了众多有助于标准化的新概念,现在我这本《Advanced DOM Scripting》中又出现了一个future-proofing,我将其译为了“适应未来”。毕竟,根据他们的设想,未来一定是他们所倡导的标准化的世界,所以不管怎样,开发现在的Web应用程序势必应该考虑到将来了。

PS:以上提到的书绝大多数都将由人民邮电出版社出版(有的已经出版了)。具体出版日期请注意相关网站预告。

6 条评论 »

  1. 评论 作者 jackzheng — 2007-11-23 @ 10:36 上午

    您总结得非常的精确和全面。伴随我的学习过程就是这些大家们!真是高山仰止,景行行止,虽不能至,心向往之啊!
    您的翻译功力不错啊,我对之也有非常的兴趣,能请教您一些翻译上的问题吗?

  2. 评论 作者 admin — 2007-11-23 @ 11:01 上午

    谢谢!谈不上什么请教,互相学习。:)

  3. 评论 作者 琳琳的小狗 — 2007-11-26 @ 4:27 下午

    cuckoo老大,非常期待你的译作,加紧呀,呵呵

  4. 评论 作者 admin — 2007-11-26 @ 8:54 下午

    致:琳琳的小狗
    不敢,不敢,呵呵!多谢你的鼓励,我会加油干的。
    另外,你推荐的那本《Pro CSS and HTML Design Patterns》有人翻译吗?

  5. 评论 作者 琳琳的小狗 — 2007-11-29 @ 10:51 下午

    《Pro CSS and HTML Design Patterns》已经由图灵引进了,不知道找到译者没,明天问问刘江老师就知道了:)
    另外apress的《Pro Javascript Design Patterns》也要出版了,同样由图灵引进,可以关注下这本呢。

  6. 评论 作者 admin — 2007-11-30 @ 2:01 下午

    谢谢了!你消息真够灵通的。

对这篇文章的评论的 RSS 聚合。 TrackBack URI

发表您的评论

验证码  If you cannot see the CheckCode image,please refresh the page again!