Ajax 定义
这里说的 AJAX 可不是荷兰的阿贾克斯,而是 Asynchronous JavaScript + XML 的缩写,它也不是单一技术,而是几种技术的强有力组合。参考《Ajax: A New Approach to Web Applications》文中所说,Ajax 包括:
* XHTML 和 CSS 的标准表示; * 使用 DOM(Document Object Model)进行动态显示及交互; * 使用 XML 和 XSLT 进行数据交换及相关操作; * 使用 XMLHttpRequest 进行异步数据查询、检索; * 使用 JavaScript 将所有的东西绑定在一起。
Ajax 能够做什么?
如今 Google Suggest 和 Google Maps 使用了 Ajax,通过 Ajax,我们可以使得客户端得到丰富的应用体验及交换操作,而用户不会感觉到有网页提交或刷新的过程,页面也不需要被重新加载,应用的数据交换都被隐藏。
传统的 WEB 应用程序模型是这样工作的:用户的界面操作触发 HTTP 请求,服务器在接收到请求之后进行一些业务逻辑处理,如保存数据等,然后向客户端返回一个 HTML 页面。但这种方式并没有给予用户很好的应用体验,当服务器在处理数据的时候,用户则处于等待的状态,每一步操作都需要等待,太多的等待会使用户越来越没有耐心。而 Ajax 则大不相同,它通过 Ajax 引擎,使得应用过程很自然,操作很流畅,因为其只和服务器交换有用的数据,而页面显示等不必要的数据则不再重新加载。Ajax 引擎其实就是 JavaScript、XML、XMLHttpRequest 等等各项技术的综合应用。

--图 1:传统 WEB 应用模型(左)与 Ajax 应用模型(右)的对比

--图 2:传统 WEB 应用程序的同步交互模式(上)与 Ajax 应用程序的异步模式(下)的对比
当前都有谁在使用 Ajax
当前应用 Ajax 的已有不少网站,如:
* Orkut * Gmail * Google Groups * Google Suggest * Google Maps * Flickr 的部分特性 * Amazon 的 A9.com 搜索引擎部分
Ajax 应用前景
Ajax 的最大挑战并不是技术,组成 Ajax 的各项技术已经相当成熟、稳定及易学,主要挑战是如何使用 Ajax 设计应用程序,我们必须抛弃以往对于 WEB 局限性的看法,开始开阔视野、开放思想、不断创新,实现更加丰富的应用体验。
Ajax 项目
目前我所了解到的与 Ajax 相关的项目如下:
* SAJAX - PHP * JPSpan - PHP * DWR (Direct Web Remoting) - Java * JSP (JavaScript Templates) - JavaScript
更多信息可参考 del./popular/ajax。