一个简单Ajax类库及使用方法实例分析
本文实例讲述了一个简单Ajax类库及使用方法。分享给大家供大家参考,具体如下:
ajax.js
functionAjax(recvType){
varaj=newObject();
aj.recvType=recvType?recvType.toUpperCase():'HTML'//HTMLXML
aj.targetUrl='';
aj.sendString='';
aj.resultHandle=null;
aj.createXMLHttpRequest=function(){
varrequest=false;
//window对象中有XMLHttpRequest存在就是非IE,包括(IE7,IE8)
if(window.XMLHttpRequest){
request=newXMLHttpRequest();
if(request.overrideMimeType){
request.overrideMimeType("text/xml");
}
//window对象中有ActiveXObject属性存在就是IE
}elseif(window.ActiveXObject){
varversions=['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(vari=0;i<versions.length;i++){
try{
request=newActiveXObject(versions[i]);
if(request){
returnrequest;
}
}catch(e){
request=false;
}
}
}
returnrequest;
}
aj.XMLHttpRequest=aj.createXMLHttpRequest();
aj.processHandle=function(){
if(aj.XMLHttpRequest.readyState==4){
if(aj.XMLHttpRequest.status==200){
if(aj.recvType=="HTML")
aj.resultHandle(aj.XMLHttpRequest.responseText);
elseif(aj.recvType=="XML")
aj.resultHandle(aj.XMLHttpRequest.responseXML);
}
}
}
aj.get=function(targetUrl,resultHandle){
aj.targetUrl=targetUrl;
if(resultHandle!=null){
aj.XMLHttpRequest.onreadystatechange=aj.processHandle;
aj.resultHandle=resultHandle;
}
if(window.XMLHttpRequest){
aj.XMLHttpRequest.open("get",aj.targetUrl);
aj.XMLHttpRequest.send(null);
}else{
aj.XMLHttpRequest.open("get",aj.targetUrl,true);
aj.XMLHttpRequest.send();
}
}
aj.post=function(targetUrl,sendString,resultHandle){
aj.targetUrl=targetUrl;
if(typeof(sendString)=="object"){
varstr="";
for(varproinsendString){
str+=pro+"="+sendString[pro]+"&";
}
aj.sendString=str.substr(0,str.length-1);
}else{
aj.sendString=sendString;
}
if(resultHandle!=null){
aj.XMLHttpRequest.onreadystatechange=aj.processHandle;
aj.resultHandle=resultHandle;
}
aj.XMLHttpRequest.open("post",targetUrl);
aj.XMLHttpRequest.setRequestHeader("Content-Type","application/x-www-form-urlencoded");
aj.XMLHttpRequest.send(aj.sendString);
}
returnaj;
}
使用方法:
<scripttype="text/javascript">
varajax=Ajax();//实例化对象,默认为HTTP,如果传入XML,返回XML对象
//Ajax的get方法使用说明
/**
*function(targetUrl,resultHandle)
*@paramstringtargetUrl传递过去的URL地址
*@paramstringresultHandle回调函数,可选项
*/
ajax.get('test.php?name=liruxing&email=liruxing1715@sina.com',function(data){
eval("varobj="+data);
alert(obj.name);
alert(obj.email);
});
//Ajax的post方法使用说明
/**
*function(targetUrl,sendString,resultHandle)
*@paramstringtargetUrl传递过去的URL地址
*@paramstringsendString参数值
*@paramstringresultHandle回调函数,可选项
*/
ajax.post('test.php','name=liruxing&email=liruxing1715@sina.com',function(data){
eval("varobj="+data);
alert(obj.name);
alert(obj.email);
})
//post第二种格式,第二个参数为Json格式
ajax.post('test.php',{name:'李茹星',email:'liruxing1715@sina.com'},function(data){
eval("varobj="+data);
alert(obj.name);
alert(obj.email);
})
</script>
更多关于ajax相关内容感兴趣的读者可查看本站专题:《jquery中Ajax用法总结》、《JavaScript中ajax操作技巧总结》、《PHP+ajax技巧与应用小结》和《asp.netajax技巧总结专题》
希望本文所述对大家ajax程序设计有所帮助。