龙空技术网

Ajax技术如何改变浏览器与web服务器的交互流程?

小智雅汇 240

前言:

如今同学们对“ajax两个页面之间数据交互”大概比较看重,大家都需要分析一些“ajax两个页面之间数据交互”的相关资讯。那么小编在网上汇集了一些对于“ajax两个页面之间数据交互””的相关知识,希望我们能喜欢,朋友们一起来了解一下吧!

通常,浏览器与web服务器的交互是独占式进行,如果交互没有完成,浏览器只能是一个等待的状态。

而使用Ajax技术可以改变浏览器与web服务器的交互流程:

AJAX = XMLHttpRequest对象 + Javascript + XML + CSS + DOM

由Ajax引擎决定将这些数据插入页面的指定位置(通过DOM及时将更新的内容显示在页面上)。

在传统的web应用模式中,将生成一次HTTP请求,而在Ajax应用开发模式中,将变成对Ajax引擎的一次JavaScript调用(这也是一个典型的中间层技术应用)。在Ajax应用开发模式中,通过JavaScript实现在不刷新整个页面的情况下,对部分数据进行更新,从而降低了网络流量,给用户带来更好的体验。

可以调用XML等外部数据,进一步促进页面显示和数据的分离。

XMLHttpRequest是一个具有应用程序接口的JavaScript对象,能够使用超文本传输协议(HTTP)连接一个服务器。

XMLHttpRequest对象与服务器交换的数据通常采用XML格式(XML只描述数据的结构以及数据之间的关系),使用CSS进行页面布局。

通常通过JavaScript操作DOM,可以达到在不刷新页面的情况下实时修改页面的目的。

XMLHttpRequest对象提供一些常用属性,通过这些属性可以获取服务器的响应状态及响应内容等。

1 XMLHttpRequest对象提供了用于指定状态改变时所触发的事件处理器的属性onreadystatechange。在Ajax中,每一个状态改变时都会触发JavaScript函数调用。

2 获取请求状态的属性readState,该属性共包括5个属性值,常用于判断请求状态。

(0) 未初始化

此阶段确认XMLHttpRequest对象是否创建,并为调用open()方法进行初始化作好准备。值为0表示对象已经存在,否则浏览器会报错--对象不存在。

(1) 载入

此阶段对XMLHttpRequest对象进行初始化,即调用open()方法,根据参数(method,url,true)完成对象状态的设置。并调用send()方法开始向服务端发送请求。值为1表示正在向服务端发送请求。

(2) 载入完成

此阶段接收服务器端的响应数据。但获得的还只是服务端响应的原始数据,并不能直接在客户端使用。值为2表示已经接收完全部响应数据。并为下一阶段对数据解析作好准备。

(3) 交互

此阶段解析接收到的服务器端响应数据。即根据服务器端响应头部返回的MIME类型把数据转换成能通过responseBody、responseText或responseXML属性存取的格式,为在客户端调用作好准备。状态3表示正在解析数据。

(4) 完成

此阶段确认全部数据都已经解析为客户端可用的格式,解析已经完成。值为4表示数据解析完毕,可以通过XMLHttpRequest对象的相应属性取得数据。

3 获取服务器的字符串响应的属性responseText。

4 获取服务器的XML响应的属性

XMLHttpRequest提供了用于获取服务器响应的属性responseXML,表示为XML,这个对象可以解析为一个DOM对象。

5 返回服务器的HTTP状态码的属性status(8个状态码),用于当请求状态为完成时,判断当前的服务器状态是否成功。

概而括之,整个XMLHttpRequest对象的生命周期应该包含如下阶段:

创建-初始化请求-发送请求-接收数据-解析数据-完成。

XMLHttpRequest对象的常用方法:

① 创建新请求的方法open()

http_request.open("GET","deal.jsp",true);

② 向服务器发送请求的方法send(content)

content可以是DOM对象的实例,输入流或字符串,null等。

③ 设置请求的HTTP头的方法

setReauestHeader("header",value);

④ 停止或放弃当前异常请求abort()

⑤ 返回HTTP头信息的方法

-End-

标签: #ajax两个页面之间数据交互