封裝通用的xhr對象,兼容各個版本
阿新 • • 發佈:2019-02-07
ren .json ide res ros pen rda status func
// 封裝通用的xhr對象,兼容各個版本
function createXHR(){
//判斷瀏覽器是否將XMLHttpRequest作為本地對象實現,針對IE7,火狐,歐朋等
if(typeof XMLHttpRequest != "undefined"){
return new XMLHttpRequest();
}else if(typeof ActiveXObject != "undefined"){
// 將有可能出現的ActiveXObject版本放在一個數組中
var xhrArr=[‘Microsoft.XMLHTTP‘,‘MSXML2.XMLHTTP.6.0‘,‘MSXML2.XMLHTTP.5.0‘,
‘MSXML2.XMLHTTP.4.0‘,‘MSXML2.XMLHTTP.3.0‘,‘MSXML2.XMLHTTP.2.0‘];
// 遍歷創建XMLHttpRequest對象
var len=xhrArr.length,xhr;
for(var i=0;i<len;i++){
try{
// 創建XMLHttpRequest對象
xhr=new ActiveXObject(xhrArr[i]);
break;
}
catch(ex){
} } return xhr; }else{ throw new Error (‘No XHR object available‘) } } //XHLHttpRequest對象 (第一步) var xhr=createXHR(),data=null; // 響應XMLHttpRequest對象函數狀態變化的函數,onreadystatechange在readystatuschange在readystatechange屬性發生改變時觸發 //(第三步) xhr.onreadystatechange=function(){ // 異步調用成功,響應內容解析完成,可以在客戶端調用 if(xhr.readyState===4){ if((xhr.status>=200 && xhr.status<300) || xhr.status===304){ //第五步 // 獲得服務器返回的數據 data=JSON.parse(xhr.responseText); //渲染數據到頁面中 renderDataToDom(); } } } //創建請求 (第二步) xhr.open("get","./server/slider.json",true); // 發送請求(第四步) xhr.send(null);
} } return xhr; }else{ throw new Error (‘No XHR object available‘) } } //XHLHttpRequest對象 (第一步) var xhr=createXHR(),data=null; // 響應XMLHttpRequest對象函數狀態變化的函數,onreadystatechange在readystatuschange在readystatechange屬性發生改變時觸發 //(第三步) xhr.onreadystatechange=function(){ // 異步調用成功,響應內容解析完成,可以在客戶端調用 if(xhr.readyState===4){ if((xhr.status>=200 && xhr.status<300) || xhr.status===304){ //第五步 // 獲得服務器返回的數據 data=JSON.parse(xhr.responseText); //渲染數據到頁面中 renderDataToDom(); } } } //創建請求 (第二步) xhr.open("get","./server/slider.json",true); // 發送請求(第四步) xhr.send(null);
封裝通用的xhr對象,兼容各個版本