1. 程式人生 > >封裝通用的xhr對象,兼容各個版本

封裝通用的xhr對象,兼容各個版本

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);

封裝通用的xhr對象,兼容各個版本