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应用程序能够在更新显示内容


发布评论