是否可以判断一个 jquery ajax 请求是否已经持续了超过一定的时间?如果请求持续了 10 秒,我想提示我网站的用户重新加载并重试,但我在文档中找不到任何内容来满足我的请求。
问问题
376 次
3 回答
5
尝试设置 timeout 属性并获取错误处理程序参数。可能的值为
"timeout", "error", "abort", and "parsererror"
$.ajax({
url: "/ajax_json_echo/",
type: "GET",
dataType: "json",
timeout: 1000,
success: function(response) { alert(response); },
error: function(x, t, m) {
if(t==="timeout") {
alert("got timeout");
} else {
alert(t);
}
}
});
于 2013-11-01T15:49:45.453 回答
2
因此,对于您网站中的所有 ajax 请求......你应该做这样的事情......
$.ajaxSetup({
beforeSend: function(jqXHR, settings){
/* Generate a timer for the request */
jqXHR.timer = setTimeout(function(){
/* Ask the user to confirm */
if(confirm(settings.url + ' is taking too long. Cancel request?')){
jqXHR.abort();
}
}, 10000);
}
});
于 2013-11-01T16:03:20.483 回答
1
设置超时,然后在 ajax 调用完成后取消它。
var timer = setTimeout(function() {
alert('Too long!');
}, 10000);
$.getJSON(url, function() {
clearTimeout(timer);
});
于 2013-11-01T15:49:33.560 回答