Ajax 超時(shí)檢查腳本
更新時(shí)間:2009年07月21日 22:28:58 作者:
檢查Ajax 是否超時(shí)的腳本代碼
復(fù)制代碼 代碼如下:
<script type="text/javascript">
function Ajax(){
var xhr;
if(window.XMLHttpRequest){
xhr=new XMLHttpRequest();
}else{
try{xhr=new ActiveXObject("MSXML2.XMLHTTP.6.0");}catch(e){}
try{xhr=new ActiveXObject("MSXML2.XMLHTTP");}catch(e){}
}
if(!xhr) return;
this.Xhr=xhr; //用屬性存儲(chǔ)XMLHttpRequest對(duì)象的實(shí)例
}
Ajax.prototype.send=function(url,options){
if(!this.Xhr) return;
var xhr=this.Xhr;
var aborted=false;
var _options={ //提供默認(rèn)值
method:"GET",
timeout:5000,
onerror:function(){},
onsuccess:function(){}
};
for(var o in options){ //覆蓋掉原來(lái)的默認(rèn)值
_options[o]=options[o];
}
function checkForTimeout(){ //檢查是否超時(shí)的情況
if(xhr.readyState!=4){
aborted=true;
xhr.abort(); //取消本次傳輸
}
}
//在規(guī)定的時(shí)間內(nèi)檢查readyState屬性的值
setTimeout(checkForTimeout,_options.timeout);
function onreadystateCallback(){
if(xhr.readyState==4){
/*
* 注釋?zhuān)籂顟B(tài)碼在200內(nèi)表示成功,300內(nèi)表示重定向,400內(nèi)是客戶(hù)端錯(cuò)誤,500是服務(wù)器端錯(cuò)誤
*/
if(!aborted && xhr.status>=200 && xhr.status<300){ //檢查aborted屬性是否超時(shí)
_options.onsuccess(xhr);
}else{
_options.onerror(xhr);
}
}
}
xhr.open(_options.method,url,true);
xhr.onreadystatechange=onreadystateCallback;
xhr.send(null);
}
var ajax=new Ajax();
ajax.send("test.php",{method: GET ,timeout:100,onerror:onerror,onsuccess:onsuccess});
function onerror(xhr){
alert("Timeout");
}
function onsuccess(xhr){
alert(xhr.responseText);
}
</script>
相關(guān)文章
JQuery Ajax動(dòng)態(tài)生成Table表格
實(shí)現(xiàn)過(guò)程是這樣的:前臺(tái)通過(guò)jquery的ajax調(diào)用一般處理程序(Handler),獲取表格需要顯示的信息,然后轉(zhuǎn)換成json格式返回給前臺(tái),前臺(tái)獲取到數(shù)據(jù)后循環(huán)構(gòu)建表格的行,最好把行附加到表里。感興趣的朋友一起看看吧2015-09-09解決Ajax方式上傳文件報(bào)錯(cuò)"Uncaught TypeError: Illegal invocation"
這篇文章主要介紹了Ajax方式上傳文件報(bào)錯(cuò)"Uncaught TypeError: Illegal invocation",非常不錯(cuò),具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2019-06-06有關(guān)ajax的error與后臺(tái)的異常問(wèn)題解決
這篇文章主要介紹了關(guān)于ajax的error與后臺(tái)的異常,需要的朋友可以參考下2014-02-02Jquery $.ajax函數(shù)外的一段代碼的執(zhí)行順序
調(diào)用了JQuery的異步函數(shù)$.ajax ,然后在$.ajax函數(shù)外之后又有一段Jquery 代碼。每次都是在$.ajax之后的代碼先執(zhí)行2014-06-06Ajax實(shí)現(xiàn)圖片上傳并預(yù)覽功能
這篇文章主要介紹了Ajax實(shí)現(xiàn)圖片上傳并預(yù)覽,需要的朋友可以參考下2018-06-06ajax返回的json內(nèi)容進(jìn)行排序使用sort()方法實(shí)現(xiàn)
關(guān)于ajax返回的json內(nèi)容進(jìn)行排序,主要使用sort()對(duì)數(shù)組的元素進(jìn)行排序,具體實(shí)現(xiàn)如下,感興趣的朋友可以參考下哈,希望對(duì)大家有所幫助2013-07-07jQuery的ajax傳參巧用JSON使用示例(附Json插件)
jQuery的ajax調(diào)用很方便,傳參的時(shí)候喜歡用Json的數(shù)據(jù)格式,使用示例代碼如下,感興趣的朋友可以參考下,希望對(duì)大家有所幫助2013-08-08