宝哥软件园

谈AJAX开发技术

编辑:宝哥软件园 来源:互联网 时间:2021-10-14

AJAX(异步JavaScript和XML)并不是一项新技术,主要用于本地页面刷新。从前面的代码开发中,读者可以发现,每当用户向服务器发送请求时,他们只需要简单地更新一点本地内容。服务器会刷新一整页,重新生成代码,肯定会降低程序的性能。但是如果采用AJAX技术,不需要刷新整个页面就可以实现局部内容的改变。显然,处理性能要比前者高得多。

在AJAX中,异步请求和响应主要通过XMLHttpRequest对象发送。这个对象最早作为ActiveX组件出现在IE 5中,直到2005年才被广泛使用。如果你想创建一个XMLHttpRequest对象,你必须使用JavaScript。

XMLHttpRequest对象的属性。

号码

属性

形容

一个

onreadystatechange

指定当readState状态改变时使用的操作,通常用于指定特定的回调函数。

2

readyState

返回当前请求的状态,只读。

responseBody

响应消息正文作为无符号字节数组返回,该数组是只读的。

响应流

以Ado Stream对象的形式返回响应信息,只读。

响应文本

接收以纯文本格式返回的数据,只读。

响应ML

以XML文档的形式接收响应数据,只读。

状态

返回当前请求的http状态代码,只读。

状态文本

返回当前请求的响应行状态,只读。

创建一个XMLHttpRequest对象。

复制的代码如下:脚本语言=' JavaScript ' var xmlhttp//AJAX核心对象名函数createXMlhttp(){//create XMlhttprequest核心对象if (window。XMLHttpRequest) {//判断当前使用的浏览器类型xmlHttp=new XMLHttpRequest();//表示带有FireFox内核的浏览器} else {//表示带有IE内核的浏览器xmlhttp=new ActiveX object(' Microsoft . xmlhttp ');} }/脚本

readState有五个值:不发送请求(在调用open()函数之前)。请求已经建立,但尚未发送(在调用send()函数之前)。请求已经发出并正在处理中(这里,通常可以从响应中获得内容头)。请求已被处理,并且正在接收来自服务器的信息。响应中通常有一些数据,但服务器尚未完成响应。响应完成后,您可以访问服务器响应并使用它。

XMLHttpRequest对象的方法。

号码

方法

形容

一个

中止()

取消当前发出的请求。

2

getAllResponseHeaders()

获取所有HTTP头信息。

getResponseHeader()

获取指定的HTTP头信息。

打开()

创建一个HTTP请求并指定请求模式,例如GET请求或POST请求。

发送()

将创建的请求发送到服务器并接收响应信息。

setRequestHeader()

设置指定请求的HTTP头信息。

AJAX封装后的代码。

Ajax.js

复制代码代码如下:函数Ajax(recvType){ var aj=new Object();aj.recvType=recvType?recvtype。touppercase(): ' HTML '/HTML XML aj。targeturl=aj . sendstring=aj . resulthandle=nullaj。createxmlhttprequest=function(){ var request=false;//窗口对象中有XMLHttpRequest存在就是非IE,包括(IE7、IE8)如果(窗口. XMLHttpRequest){ request=new XMLHttpRequest();if(请求。override metype){请求。override metype(' text/XML ');}//窗口对象中有客户端报表属性存在就是IE }else if(窗口ActiveXObject){ var versions=[' Microsoft .XMLHTTP ' ',MSXML .XMLHTTP ',' Msxml2 .XMLHTTP.7.0 ',' Msxml2 .XMLHTTP.6.0 ',' Msxml2 .XMLHTTP.5.0 ',' Msxml2 .XMLHTTP.4.0 ',' MSXML2 .XMLHTTP.3.0 ',' MSXML2 .XMLHTTP '];for(var I=0;长度;I){ try { request=new ActiveX对象(版本[I]);if(request){ return request;} } catch(e){ request=false;} } }返回请求;} aj .XMLHttpRequest=aj。createxmlhttprequest();aj。进程句柄=函数(){ if(aj .xmlhttprequest。readystate==4){ if(aj .xmlhttprequest。status==200){ if(aj。recvtype==' HTML ')aj。结果句柄(aj .xmlhttprequest。response text);else if(aj。recvtype==' XML ')aj。结果句柄(aj .xmlhttprequest。response CML);} } } aj.get=function(targetUrl,resultHandle){ aj。TargetURl=TargetURlif(resultHandle!=null){ aj .xmlhttprequest。onreadystatechange=aj。流程句柄;aj.resultHandle=resultHandle}如果(窗口XMLHttpRequest){ aj .XMLHttpRequest.open('get ',aj。target URl);aj .xmlhttprequest。发送(null);}else{ aj .XMLHttpRequest.open('get ',aj.targetUrl,true);aj .xmlhttprequest。send();} } aj.post=function(targetUrl、sendString、ResultHandle){ aj。TargetURl=TargetURlif(类型为(SendString)=' object '){ var str=' ';for(sendString中的var pro){ str=pro '=' SendString[pro]';} aj.sendString=str.substr(0,str。长度-1);} else { aj。发送字符串=发送字符串;} if(resultHandle!=null){ aj .xmlhttprequest。onreadystatechange=aj。流程句柄;aj . resultHandle=resultHandle } aj .XMLHttpRequest.open('post ',TargetURl);aj .xmlhttprequest。setrequestheader(' Content-Type ',' application/x-www-form-URL编码');aj .xmlhttprequest。发送(aj。SendString);}返回aj;}

使用创建交互式、快速动态网页应用的网页开发技术可以完成局部刷新操作;

在创建交互式、快速动态网页应用的网页开发技术中主要是通过XMLHttpRequest对象完成操作。

以上就是关于创建交互式、快速动态网页应用的网页开发技术开发技术的全部内容了,希望小伙伴们能够喜欢。

更多资讯
游戏推荐
更多+