AJAX是什么

转载 2006年06月09日 23:37:00
AJAX是什么

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的原文a
类似于DHTML或LAMP,AJAX不是指一种单一的技术,而是有机地利用了一系列相关的技术。事实上,一些基于AJAX的“派生/合成”式(derivative/composite)的技术正在出现,如“AFLAX”。
AJAX的应用使用支持以上技术的web浏览器作为运行平台。这些浏览器目前包括:Mozilla、Firefox、Internet Explorer、Opera、Konqueror及Safari。但是Opera不支持XSL格式对象,也不支持XSLT。[1]

[编辑]
与传统的web应用比较
传统的web应用允许用户填写表单(form),当提交表单时就向web服务器发送一个请求。服务器接收并处理传来的表单,然后返回一个新的网页。这个做法浪费了许多带宽,因为在前后两个页面中的大部分HTML代码往往是相同的。由于每次应用的交互都需要向服务器发送请求,应用的响应时间就依赖于服务器的响应时间。这导致了用户界面的响应比本地应用慢得多。

与此不同,AJAX应用可以仅向服务器发送并取回必需的数据,它使用SOAP或其它一些基于XML的web service接口,并在客户端采用JavaScript处理来自服务器的响应。因为在服务器和浏览器之间交换的数据大量减少,结果我们就能看到响应更快的应用。同时很多的处理工作可以在发出请求的客户端机器上完成,所以Web服务器的处理时间也减少了。

图片
传统web应用与AJAX应用的比较:处理用户交互

图片
传统web应用与AJAX应用的比较:交互模式

[编辑]
发展史
该技术在1998年前后得到了应用。允许客户端脚本发送HTTP请求(XMLHTTP)的第一个组件由Outlook Web Access小组写成。该组件原属于Microsoft Exchange Server,并且迅速地成为了Internet Explorer 4.0[2]的一部分。部分观察家认为,Outlook Web Access是第一个应用了Ajax技术的成功的商业应用程序,并成为包括Oddpost的网络邮件产品在内的许多产品的领头羊。但是,2005年初,许多事件使得Ajax被大众所接受。Google在它著名的交互应用程序中使用了异步通讯,如Google讨论组、Google地图、Google搜索建议、Gmail等。Ajax这个词由《Ajax: A New Approach to Web Applications》一文所创,该文的迅速流传提高了人们使用该项技术的意识。另外,对Mozilla/Gecko的支持使得该技术走向成熟,变得更为易用。

[编辑]
优点、前提和批评
使用Ajax的最大优点就是能在不刷新整个页面的前提下维护数据。这使得Web应用程序更为迅捷地响应用户交互,并避免了在网络上发送那些没有改变的信息。

Ajax不需要任何浏览器插件,但需要用户允许JavaScript在浏览器上执行。就像DHTML应用程序那样,Ajax应用程序必须在众多不同的浏览器和平台上经过严格的测试。随着Ajax的成熟,一些简化Ajax使用方法的程序库也相继问世。同样,也出现了另一种辅助程序设计的技术,为那些不支持JavaScript的用户提供替代功能。

对应用Ajax最主要的批评就是,它可能破坏浏览器后退按钮的正常行为(参见Jakob Nielsens的《1999 Top-10 New Mistakes of Web Design》)。在动态更新页面的情况下,用户无法回到前一个页面状态,因为浏览器仅能记忆历史记录中的静态页面。一个被完整读入的页面与一个已经被动态修改过的页面之间的差别非常微妙;用户通常会希望单击后退按钮能够取消他们的前一次操作,但是在Ajax应用程序中,这将无法实现。开发者们想出了种种办法来解决这个问题,大多数都是在用户单击后退按钮访问历史记录时,通过创建或使用一个隐藏的IFRAME来重现页面上的变更。(例如,当用户在Google Maps中单击后退时,它在一个隐藏的IFRAME中进行搜索,然后将搜索结果反映到Ajax元素上,以便将应用程序状态恢复到当时的状态。)

一个相关的观点认为,使用动态页面更新使得用户难于将某个特定的状态保存到收藏夹中。该问题的解决方案也已出现,大部分都使用URL片断标识符(通常被称为锚点,即URL中#后面的部分)来保持跟踪,允许用户回到指定的某个应用程序状态。(许多浏览器允许JavaScript动态更新锚点,这使得Ajax应用程序能够在更新显示内容的同时更新锚点。)这些解决方案也同时解决了许多关于不支持后退按钮的争论。

进行Ajax开发时,网络延迟——即用户发出请求到服务器发出响应之间的间隔——需要慎重考虑。不给予用户明确的回应[3],没有恰当的预读数据[4],或者对XMLHttpRequest的不恰当处理[5],都会使用户感到延迟,这是用户不希望看到的,也是他们无法理解的。[6]通常的解决方案是,使用一个可视化的组件来告诉用户系统正在进行后台操作并且正在读取数据和内容。

相关文章推荐

Ajax是什么

AJAX全称为“Asynchronous JavaScript and XML”(异步JavaScript和XML),是指一种创建交互式网页应用的网页开发技术。  主要包含了以下...

ajax是什么

1)asynchronous javascript and xml(异步的javascript和xml)   为了解决传统的web应用当中“等待-响应-等待”的弊端而创建的一种技术,其实质可以理解为:...

javascript , jquery , ajax ,extjs 作用已经他们之间是什么关系?

javascript是一种动态弱类型的脚本语言,主要在客户端使用。 和其他变成语言不同的特点: 1.使用变量无需事先声明类型,还可以在实例化后动态的添加方法。类似于咱们的警察执法无需先亮证件证明身...

ajax异步提交数据接收不到一般都是什么原因以及解决方案

最近在做公司项目,遇到一个很纳闷的问题,老夫久经码场,却由于自己的一个疏忽,让老夫郁闷了好几天,还影响的公司项目的进度,下面就给大家分享自己犯二的经历,让各位别和我一样犯二 今天我们主要讨论...

ajax是什么东西?

//转载自http://zhidao.baidu.com/question/155242272.html “ AJAX的概念就是页面互动无刷新的效果。 例如:你做一个注册页面,因为用户一般都...

jQuery ajax中的回调数据是什么?

====================================================== 注:本文源代码点此下载 =============================...

jQuery、Ajax 和 JS 之间是什么关系,如何学习 JS ?

jQuery、Ajax 和 JS 等定义

ajax中xmlhttp.readyState==4 && xmlhttp.status==200 是什么意思

xmlhttp.readyState的值及解释: 0:请求未初始化(还没有调用 open())。 1:请求已经建立,但是还没有发送(还没有调用 send())。 2:请求已发送,正在处理中(通常现在可...

Web前端面试指导(二十九):Ajax 是什么? 如何创建一个Ajax?

题目点评 Ajax 是在工作中是必用的技术,在面试中十有八九会问的,答题的思路最好先回答原生态Ajax使用的步骤,最后告诉面试官,我们在工作中是使用Jquery来实现Ajax请求和处理的。在回答的时候...
  • lxcao
  • lxcao
  • 2016年10月06日 21:41
  • 2946

AJAX是什么?AJAX的交互模型(流程)?同步和异步的区别?AJAX跨域的解决办法?

ajax是异步的 JavaScript 和 XML。通过在后台与服务器进行少量数据交换,AJAX 可以使网页实现异步更新。这意味着可以在不重新加载整个网页的情况下,对网页的某部分进行更新。 交互流程:...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:AJAX是什么
举报原因:
原因补充:

(最多只允许输入30个字)