ajax:异步Javascript和XML异步Javascript和XML。



它是一种用于创建交互式Web应用程序的Web开发技术。



1大优势:

1.1通过异步模式,提高用户体验。

1.2优化了浏览器与服务器之间的传输,减少了不必要的数据往返,减少了带宽占用。

1.3个Ajax引擎运行在客户端,并承担了由服务器承担的协作集的一部分,从而减少了大用户中服务器的负载。



2工作原理



Ajax的核心是Javascript的XMLHttpRequest对象,这个对象是第一次引用在IE5,这是一种技术,支持异步requests.xmlhttprequest允许你使用Javascript向服务器请求和处理响应而不是阻止用户实现无刷新效果。

由于浏览器之间的差异,有差异的方式来创建XMLHttpRequest对象(主要是IE和其他浏览器之间的差异)。



2.1创建异步请求的常见方法:

复制代码代码如下所示:

函数的CreateXmlHttp(){

方法/非IE浏览器来创建XMLHttpRequest对象

如果(窗口。XmlHttpRequest){

XMLHTTP =新的XMLHttpRequest();

}

由 / / IE浏览器创建XMLHttpRequest对象的方法

如果(窗口。ActiveX对象){

{试

XMLHTTP =新的ActiveX对象(微软。XMLHTTP );

}

catch(e){

{试

XMLHTTP =新的ActiveX对象(MSXML2. XMLHTTP );

}

捕捉(前)

{ }

}

}

}



2.2 XMLHttpRequest对象的相关属性:



onreadystatechange事件处理程序更改事件的每一次状态变化。

responseText返回从服务器处理数据的字符串形式。

DOM兼容的文档数据对象responseXML之外从服务器返回的过程。

从服务器返回的状态数字代码,如常见的404(未找到)和200(就绪)

使用状态码的状态文本的字符串信息

readyState对象状态值

0(未初始化)对象已经建立,但还没有被初始化(尚未调用Open方法)

已经建立了1个(初始化)对象,并没有调用发送方法。

2(发送数据)已调用发送方法,但当前状态和HTTP头未知。

3(数据传输)已收到的数据的一部分,因为和HTTP头的响应是不完整的,所以它是通过responsebody和responseText获取部分数据错误。

4(完成)完成数据,并完成响应的数据可以通过使用responseXML和responseText得到

2.3个简单的演示示例:

复制代码代码如下所示:

功能sendasyncrequest(){

VaR数据= document.getelementbyid(xxid )的价值;

(CreateXmlHttp); / /创建XMLHttpRequest对象

(如果!Xmlhttp){ / /判断对象是否已经创建成功

警报(创建XMLHTTP对象例外!;

返回false;

}

Xmlhttp.open(后,URL,false); / /发送异步请求

xmlhttp.onreadystatechange =函数(){

如果(xmlhttp.readystate = = 4 { xmlhttp.status = = 200)

document.getelementbyid(xxshowid ).innerHTML = xmlHttp.responseText; / /数据接收端

}

}

Xmlhttp.send();

}



3缺点:



1。破坏浏览器返回按钮的正常行为,并且在动态更新页面后不能返回上一页的状态。

2。使用Javascript作为Ajax的基本引擎,Javascript兼容性不是很好(当然,流行的jQuery和其他Javascript类库已经大大改善了这些问题。对Ajax的调用也更加方便。本文仅概述了ajax的基本实现原理。