2024年6月7日发(作者:)

ajaxCommon

AJAX全称为“Asynchronous JavaScript and XML”(异步

JavaScript和XML),是指一种创建交互式网页应用的网页开发技术。

Ajax(Asynchronous JavaScript + XML)的定义

基于web标准(standards-based presentation)XHTML+CSS

的表示;

使用 DOM(Document Object Model)进行动态显示及交互;

使用 XML 和 XSLT 进行数据交换及相关操作;

使用 XMLHttpRequest 进行异步数据查询、检索;

使用 JavaScript 将所有的东西绑定在一起。英文参见Ajax的提出

者Jesse James Garrett的原文,原文题目(Ajax: A New Approach to

Web Applications)。

类似于DHTML或LAMP,AJAX不是指一种单一的技术,而是有

机地利用了一系列相关的技术。事实上,一些基于AJAX的“派生/合

成”式(derivative/composite)的技术正在出现,如“AFLAX”。

AJAX的应用使用支持以上技术的web浏览器作为运行平台。这

些浏览器目前包括:Mozilla、Firefox、Internet Explorer、Opera、

Konqueror及Safari。但是Opera不支持XSL格式对象,也不支持

XSLT。

优点和缺点:

传统的web应用允许用户填写表单(form),当提交表单时就向

web服务器发送一个请求。服务器接收并处理传来的表单,然後返回

一个新的网页。这个做法浪费了许多带宽,因为在前後两个页面中的

大部分HTML代码往往是相同的。由于每次应用的交互都需要向服务

器发送请求,应用的响应时间就依赖于服务器的响应时间。这导致了

用户界面的响应比本地应用慢得多。与此不同,AJAX应用可以仅向服

务器发送并取回必需的数据,它使用SOAP或其它一些基于XML的

web service接口,并在客户端采用JavaScript处理来自服务器的响

应。因为在服务器和浏览器之间交换的数据大量减少,结果我们就能

看到响应更快的应用。同时很多的处理工作可以在发出请求的客户端

机器上完成,所以Web服务器的处理时间也减少了。

使用Ajax的最大优点,就是能在不更新整个页面的前提下维护数

据。这使得Web应用程序更为迅捷地回应用户动作,并避免了在网络

上发送那些没有改变过的信息。Ajax不需要任何浏览器插件,但需要

用户允许JavaScript在浏览器上执行。就像DHTML应用程序那样,

Ajax应用程序必须在众多不同的浏览器和平台上经过严格的测试。随

着Ajax的成熟,一些简化Ajax使用方法的程序库也相继问世。同样,

也出现了另一种辅助程序设计的技术,为那些不支持JavaScript的用

户提供替代功能。

对应用Ajax最主要的批评就是,它可能破坏浏览器后退按钮的正

常行为[4]。在动态更新页面的情况下,用户无法回到前一个页面状态,

这是因为浏览器仅能记下历史记录中的静态页面。一个被完整读入的

页面与一个

已经被动态修改过的页面之间的差别非常微妙;用户通常都希望

单击后退按钮,就能够取消他们的前一次操作,但是在Ajax应用程序

中,却无法这样做。不过开发者已想出了种种办法来解决这个问题,

当中大多数都是在用户单击后退按钮访问历史记录时,通过建立或使

用一个隐藏的IFRAME来重现页面上的变更。(例如,当用户在

GoogleMaps中单击后退时,它在一个隐藏的IFRAME中进行搜索,

然后将搜索结果反映到Ajax元素上,以便将应用程序状态恢复到当时

的状态。)

一个相关的观点认为,使用动态页面更新使得用户难于将某个特

定的状态保存到收藏夹中。该问题的解决方案也已出现,大部分都使

用URL片断标识符(通常被称为锚点,即URL中#后面的部分)来保

持跟踪,允许用户回到指定的某个应用程序状态。(许多浏览器允许

JavaScript动态更新锚点,这使得Ajax应用程序能够在更新显示内容