Ajax超时检查脚本
AJAX 脚本 检查 超时
2023-06-13 09:14:11 时间
<scripttype="text/javascript">
functionAjax(){
varxhr;
if(window.XMLHttpRequest){
xhr=newXMLHttpRequest();
}else{
try{xhr=newActiveXObject("MSXML2.XMLHTTP.6.0");}catch(e){}
try{xhr=newActiveXObject("MSXML2.XMLHTTP");}catch(e){}
}
if(!xhr)return;
this.Xhr=xhr;//用属性存储XMLHttpRequest对象的实例
}
Ajax.prototype.send=function(url,options){
if(!this.Xhr)return;
varxhr=this.Xhr;
varaborted=false;
var_options={//提供默认值
method:"GET",
timeout:5000,
onerror:function(){},
onsuccess:function(){}
};
for(varoinoptions){//覆盖掉原来的默认值
_options[o]=options[o];
}
functioncheckForTimeout(){//检查是否超时的情况
if(xhr.readyState!=4){
aborted=true;
xhr.abort();//取消本次传输
}
}
//在规定的时间内检查readyState属性的值
setTimeout(checkForTimeout,_options.timeout);
functiononreadystateCallback(){
if(xhr.readyState==4){
/*
*注释:状态码在200内表示成功,300内表示重定向,400内是客户端错误,500是服务器端错误
*/
if(!aborted&&xhr.status>=200&&xhr.status<300){//检查aborted属性是否超时
_options.onsuccess(xhr);
}else{
_options.onerror(xhr);
}
}
}
xhr.open(_options.method,url,true);
xhr.onreadystatechange=onreadystateCallback;
xhr.send(null);
}
varajax=newAjax();
ajax.send("test.php",{method:GET,timeout:100,onerror:onerror,onsuccess:onsuccess});
functiononerror(xhr){
alert("Timeout");
}
functiononsuccess(xhr){
alert(xhr.responseText);
}
</script>
相关文章
- ajax发送异步请求四个步骤,AJAX的异步请求的四个步骤[通俗易懂]
- 什么是Ajax以及ajax请求的步骤[通俗易懂]
- AJAX动态加载下拉框数据
- struts2:使用JQuery、JSON和AJAX处理请求详解编程语言
- jQuery Ajax 实例 ($.ajax、$.post、$.get)详解编程语言
- ajax提交post请求出现数组被截断情况的解决方法详解编程语言
- ASP.NET WebForm也可以这样用Ajax(程序猿,你知道不)
- Ajax调用MySQL给网站带来快捷体验(ajax调用mysql)
- Ajax实现从MySQL读取数据(ajax 读取mysql)
- MySQL与Ajax的联动大大提高网站数据交互的效率(ajax和mysql连用)
- 异步Ajax与Oracle数据库实现无缝连接(ajax连接oracle)
- Ajax一统天下之Dojo整合篇
- Ajax学习资源中外都有
- ASP.NET(AJAX+JSON)实现对象调用
- asp.net使用母版页中使用ajax脚本取数据
- 什么是Ajax
- Ajax数据请求的简单分析
- PHP中如何判断AJAX提交的数据
- JQuery中使用Ajax赋值给全局变量失败异常的解决方法