探索AJAX运行时产品
本文通过比对一些可比较的特征来尝试分类整理这些框架。希望读者阅读后能了解一些用来细分Ajax产品集合的工具,以便更轻松地理解其间的差异、缩减需要查看的子集数,并制订出更明智的选择。
引发当今Ajax浪潮的浏览器技术早在1999年就存在了。但由于最初编程接口过于低级,处理起来极其困难,而且构成Ajax的浏览器和JavaScript技巧对客户机的要求过高。近几年来,随着具有更多内存、处理器以及网络带宽容量等资源的终端的普及,Ajax逐渐日益成为为Web应用程序开发富用户界面的现实途径。影响之一就是推出了一组Ajax运行时框架,尝试为开发人员提供了更多可行的应用程序编程模型。
本文通过比对一些可比较的特征来尝试分类整理这些框架。希望读者阅读后能了解一些用来细分Ajax产品集合的工具,以便更轻松地理解其间的差异、缩减需要查看的子集数,并制订出更明智的选择。
本文关注的是Java EE 世界。不同流派的其他技术如 .NET和Ruby中还有许多有意思的东西值得探讨,但这些都不在本文讨论的范围内。
简介
Ajax是Asynchronous JavaScript And XML的缩写。它是一种创建被媒体称为富Internet应用程序的Web那类Web应用程序的可行技术。RIA之所以被称为“富”,首先,相对于传统的页面刷新式Web应用程序,它更类似于桌面应用程序。比如,可以将页面控件以一种细粒度的方式互连(更改列表框中的值可能会导致页面上另外一个控件被启用或禁用,甚至完全消失)。Ajax还启用了许多在传统Web应用程序中无法实现的可视化效果。其中一些功能如下:
- 拖放式操作
- 树展开/收缩
- 选项卡面板
- 文本自动补全
- 折叠控件
富应用程序的另一个同样重要的特征就是UI与数据源(即服务器)之间的通信,这种通信无需像传统Web应用程序那样要求进行页面刷新。
Ajax并不是用来创建富Web应用程序的惟一方式。也可以使用Adobe的Flash插件,在当今市面上的大多数浏览器中都可看到这种插件。其他可选方法还包括使用某种特定于浏览器的富UI技术,比如Internet Explorer中的XAML以及Mozilla的XUL等。Ajax最大的优势在于它是一个真正的零内存占用解决方案:绝大多数现代浏览器都支持它,并且它仅使用客户端本身具备的内容。客户机上不需要有任何额外的插件即可与服务器端的Ajax应用程序保持同步。
这并不是说不同浏览器在Ajax技术的实现方面不存在差异。本地浏览器API无论是在语义还是行为层面上都是非标准化的。Ajax应用程序通常无需考虑不同浏览器上的实现差异,其原因在于Ajax 运行时框架本身考虑了这些问题。
在最低层没有框架的情况下,原始Ajax编程要求:
- 一个到达服务器的异步管道(即一个API与既不会冻结UI,也不会刷新Web页面的服务器通信)。这里是XMLHttpRequest 对象
- 一种用于构造和解析消息并操纵浏览器DOM的语言。这里是JavaScript。
- 一种创建初始页面布局的标记语言(并非必须,但经常使用)。这里是DHTML。
- 一种在Web页面和服务器间流动的消息所用的数据表示。一般采用XML,但由于XMLHttpRequest对象不对数据流进行检查,因此可以采用服务器和客户端间达成共的任何表示JSON(JavaScript Object Notation)是一种流行的替代方法。
由于浏览器间的差异性以及在该层次上工作的可用开发工具的相对不成熟性和平台依赖状况,使用原始Ajax进行开发是很困难的。也正因如此,大量的Ajax 运行时框架涌现出来。本文将概览这一领域,并提供一种用于细分不同框架并理解它们之间的相似性和差异的方法。
- 本文关键词:

