Ajax的基本运作方式

Ajax并不是一个专门的产品,浏览器中也没有专门的Ajax函数集。Ajax无非就是将名为XMLHttpRequest的特殊javascript对象与javascript事件和动态HTML技术结合起来使用。这篇博文将XMLHttpRequest对象拿出来晒晒它的基本特性。


当我们实例化了一个XHR对象的时候,就要做下一步:发送请求。建立一个对服务器的调用所需要的基本信息,我们需要:

1.服务器资源的URL;

2.HTTP请求类型,通常是GET或者POST;

3.服务器资源所需的参数;

4.一个javascript函数,对服务器返回的结果进行解释和处理。

open(http_method,url,asynchronous)初始化一个指向URL的连接。如果asynchronous为true,那么请求会在后台运行,这允许用户在XHR请求处理的过程中执行其他工作。反之,则是传统的“工作等待”模式的web应用。

所以打开一个URL连接,我们可以这样写:

xhr.open('Get','serverlet/ajax/getItem?id=321','trueasynchronous')


第二步就是指派一个毁掉处理器函数来接收响应,回调处理器的名称为onreadystatechange。在XHR对象经理的每种就绪状态(ready state)上,毁掉函数都至少被调用一次。在onreadystatechange函数中,需要手动检查readyState属性,一次确定当前请求处于生命周期的哪个阶段,以及是否可以开始对最终结果进行处理。任何时候readyState总会是以下几个值之一:

0 Uninitialized 尚未调用open()

1 Loading 已经执行open()

2 Loaded 已经执行send()

3 Interactive  服务器返回了一个数据块

4 Complete 请求完成,服务器数据发送完毕

基本上你只需检测readyState==4,也就是查看请求是否完成。一个典型的回调函数如下:

xhr.onreadystatechange=function(){
   var ready=xhr.readyState;
   if(ready==4){
	parseCompletedRespoinse(xhr);
    }
}



你可能感兴趣的:(Ajax)