在Ajax异步请求中,怎么处理请求延时?

悬赏:5 发布时间:2008-07-04 提问人:mywqsh (初级程序员)

如题.
如果在一段时间后,无法得到的响应,则关闭这个请求,我该怎么办?

采纳的答案

2008-07-04 ham (架构师)

以前也遇到过这种问题.
我的解决方法是:可以在一段时间后,检查这个请求的状态.
下面是我写的一个小例子:

function backSend(){
	...
	xmlHttp.open("GET","theUrl",true);
	xmlHttp.onreadystatechange=function(){
	    //请求状态改变时的操作
	    .....
	};
	xmlHttp.send();
	//十秒钟后检查xmlHttp是否得到了响应.
	setTimeout(function(){checkRequest(xmlHttp)},"10000");
	...
}

function checkRequest(request){
	if(request.readyState!=4||request.status!=200){
		alert("获取响应失败!");
		//关闭请求.
	}else{
		alert("已经正确得到响应!");
	}
	request.close();
}


希望能对楼主有所帮助.

提问者对于答案的评价:
谢谢