buz*_*110 3 javascript ajax timeout settimeout
我有这段代码在40秒后超时ajax调用:
if (xmlhttp) {
xmlhttp.open("GET", MY_SERVLET, true); xmlhttp.onreadystatechange = showResults;
xmlhttp.send(null);
var httpTimeOut=setTimeout("ajaxTimeout();",40000);
}
function ajaxTimeout() {
xmlhttp.abort();
document.getElementById('errorShow').innerHTML = "Request Timed out";
}
Run Code Online (Sandbox Code Playgroud)
但是由于我所处的环境限制,我无法测试这个.谁能告诉我这是否正确或需要进行任何修改?
Nem*_*den 10
应该修复:
if (xmlhttp) {
xmlhttp.open("GET", MY_SERVLET, true);
xmlhttp.onreadystatechange = showResults;
xmlhttp.send(null);
setTimeout(function() { xmlhttp.abort() },40000);
Run Code Online (Sandbox Code Playgroud)
因为ajaxTimeout函数不能"看到" xmlhttp变量,但我们可以使用匿名函数来访问局部变量.
另一种方法是使用,jQuery.ajax所以图书馆会照顾它.
你的代码看起来像这样:
$.ajax({
url: MY_SERVLET,
async: true,
timeout: 40000,
success: function(args) {
// on success code
}
})
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
16539 次 |
| 最近记录: |