日期:2014-03-17  浏览次数:20888 次

  Ajax并不是一门新的言语或技术,它实际上是几项技术按一定的方式组合在一在同共的协作中发挥各自的作用,它包括

  使用XHTML和CSS标准化呈现;
  使用DOM实现动态显示和交互;
  使用XML和XSLT进行数据交换与处理;
  使用XMLHttpRequest进行异步数据读取;
  最后用JavaScript绑定和处理所无数据;

  在旧的交互方式中,由用户触发一个HTTP请求到服务器,服务器对其进行处理后再前往一个新的HTHL页到客户端,每当服务器处理客户端提交的请求时,客户都只能空闲等待,并且哪怕只是一次很小的交互、只需从服务器端得到很简单的一个数据,都要前往一个完整的HTML页,而用户每次都要浪费时间和带宽去重新读取整个页面。

  而使用Ajax后用户从感觉上几乎所有的操作都会很快呼应没有页面重载的等待。

  Ajax的任务原理相当于在用户和服务器之间加了—个两头层,使用户操作与服务器呼应异步化。并不是所有的用户请求都提交给服务器,像—些数据验证和数据处理等都交给Ajax引擎本人来做,只要确定需求从服务器读取新数据时再由Ajax引擎代为向服务器提交请求(次要是读取XML格式的数据)。
并且Ajax的一个最大的特点是无需刷新页面便可向服务器传输或读取数据(又称无刷新更新页面),这一特点次要得益于XMLHTTP组件XMLHttpRequest对象。这样就可以向再发桌面使用程序只同服务器进行数据层面的交换,而不用每次都刷新界面也不用每次将数据处理的任务提交给服务器来做,这样即减轻了服务器的负担又加快了呼应速度、缩短了用户等候时间。

  最早使用XMLHTTP的是微软,IE通过允许开发人员在Web页面内部使用XMLHTTP ActiveX组件扩展本身的功用,开发人员可以不用从当前的Web页面导航而直接传输数据到服务器上或者从服务器取数据。这个功用是很重要的,由于它协助减少了无形状连接的痛苦,它还可以排除下载冗余HTML的需求,从而提高进程的速度。Mozilla 做出的回应是创建它本人的承继XML代理类:XMLHttpRequest类。Konqueror (和Safari v1.2,同样也是基于KHTML的浏览器)也支持XMLHttpRequest对象,而Opera也将在其v7.6x+当前的版本中支持XMLHttpRequest对象。对于大多数情况,XMLHttpRequest对象和XMLHTTP组件很类似,方法和属性也类似,只是有一小部分属性不支持。

  附:
  XMLHttpRequest对象在JS中的使用
var xmlhttp = new XMLHttpRequest();
  微软的XMLHTTP组件在JS中的使用
var xmlhttp = new ActiveXObject(Microsoft.XMLHTTP);
var xmlhttp = new ActiveXObject(Msxml2.XMLHTTP);