`

漫话AJAX框架(一)

    博客分类:
  • Ajax
阅读更多


(本文选自《程序员》2007年第12期)
引用自:http://vipnews.csdn.net/newscontent.aspx?pointid=2008_02_29_141745331



编者按:近两年来,AJAX之风愈演愈烈,其相关技术以及背后所秉承的理念正逐渐被越来越多的开发人员所认可。随之而来的AJAX开源框架也层出不穷。更令人欣幸的是,在众多框架之中,我们华语开发者为Web应用开发人员贡献了两个出类拔萃之作:新技术的“领头羊”ZK,厚积薄发的“水牛”Buffalo。本期的工具栏目,邀请到ZK创始人——叶明宪和Buffalo创始人——陈金洲,对当前一些流行的AJAX框架做出点评,并且与读者分享AJAX框架的发展现状及趋势。

  叶明宪观点

  AJAX 已流行二、三年了,现今所谓 Web 2.0 网站或多或少有 AJAX 影子。然而新的 AJAX 框架仍不断诞生,现有的框架也在持续推出新的版本。为什么?

  首先,AJAX应用范围持续扩大,从 del.icio.us 简易的编辑功能,到 999fang.com 整合 AJAX 和数据库搜寻,到 Google Spreadsheets 近似 Windows 应用程序。再者,AJAX已缓步进入企业应用。除了User Friendly,安全、开发及维护成本、与现有应用服务器、服务和开发环境的整合度等更是企业应用的重点。这些都已跳脱早期框架的范畴。

  目前 AJAX 在企业应用正处于 Geoffrey Moore 所谓的Chasm中,预期接下二年会慢慢大量投入使用。而在消费型网站的应用正走过高成长期,聚光灯的焦点将逐渐移到如Google Spreadsheets的应用。

  在这种背景之下,AJAX框架如雨后春笋,层出不穷。很多开发者朋可能都有自己的偏好,但是仍有一些开发人员面对这么多框架,可能会感觉无从下手。我们可以从多个面向来看这些框架。

  从功能面来看,可分为以下几类:

  1、浏览器端的底层链接库,如 Prototype, script.aculo.us, jQuery 等。

  2、浏览器端UI组件库,如 Ext-JS, Dojo 等。

  3、整合式框架,如 ZK, Backbase, IceFaces 等。

  其中,底层链接库应用最广、轻巧易整合力但功能有限。整合式框架则包括浏览器端及服务器端的完整框架。

  DWR和GWT则较难分类。DWR基本是JavaScript-to-Java 的 RPC框架,而GWT则是在RPC 加上浏览器端开发工具。

  从应用面来看,可粗分网站应用和企业应用。底层链接库多用于网站应用或当其它框架的基础。UI组件库则二者都有,而整合式框架侧重在企业应用。

  从系统架构来看,可分Client-centric和Server-centric。所谓 Client-centric 是指你写的程序代码(UI部份)主要执行的地方在客户端 (即浏览器),而 Server-centric 则在服务器端。大部份框架多是 Client-centric,如Dojo, Prototype,GWT,Ext-JS,Backbase等。而Server-centric则以ZK为代表。

  一般读者不太注意架构的差别,但它是决定开发及维护成本的关键。

  读到这里,可能仍有人心存疑问:到底哪种框架适合我的应用?事实上,没有单一个框架适合所有应用。对于强调简易直觉接口的Web 2.0网站而言,通常只有几个需要 AJAX化的功能,可藉由浏览器端的底层链接库的帮助,并投入相当资源,以使这些AJAX 化出众夺目才是最重要的。对于现有Web应用程序,如架构于Struts、JSP或JSF等,则可依其对JavaScript熟悉度而选择浏览器端UI组件库或整合式框架。使用浏览器端 UI组件库,需要较多定制化JavaScript程序代码才能整合到原应用程序中。而使用整合式框架,则要视其是否支持现已使用的架构。例如,若使用.NET平台,则只能使用 Microsoft的框架。若使用JSP则可使用ZK和Backbase。若使用JSF则可使用ZK,Backbase和IceFaces。

  利用ZK框架设计的Web应用程序具备丰富的胖客户端特性和简单的设计模型。ZK包括一个基于AJAX可自动进行交互式操作的事件驱动引擎和一套兼容XUL (XML User-interface Language——基于XML的用户接口语言)的组件。利用直观的事件驱动模型,你可以用具有XUL特性的组件来表示你的应用程序并通过由用户触发的监听事件来操作这些组件。目前,ZK 3.0 版本已发布。提供了基于XUL和XHTML现成丰富的组件:网格、标签页装饰器、树形目录、组合框、图表、滚动条、分割条、音频等等。此外,还提供了宏组件,能够开发新组件像搭积木一样简单和方便。编写脚本(Script)功能可以用EL expressions和你偏好的脚本语言,包含但不仅限于Java、JavaScript、Ruby、Groovy和MVEL的语言。值得一提的是,最新版本还集成了Google Maps, FCKeditor, Dojo以及 Timeline,并且提供对Google最新发布的手机操作平台Android的开发支持。

  有人预测,Silverlight、Flex等RIA框架的出现,将对AJAX框架构成严重威胁,我的看法刚好相反。Silverlight、Flex等是大型软件公司企图以私有 protocol 垄断新兴市场的老方法。然而因特网的巨大并不是任何人所能控制的。感谢Tim Berners-Lee等人无私的贡献,因特网已成为最公平最开放的平台了。事实上 Flex 不久前才刚转为 Open Source,这对定价超过一万美元的软件,算是个重大的挫败。

  
分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics