是否可以判断一个jquery ajax请求是否已经持续了一段时间以上?我想提示我的网站的用户,如果请求已经进行了10秒重新加载和重试,但我在文档中找不到任何东西来满足我的请求。
发布于 2013-11-01 23:49:45
尝试设置超时属性并获取错误处理程序参数。可能的值包括
"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-02 00:03:20
所以对于站点中的所有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-01 23:49:34
设置一个超时时间,然后在ajax调用完成后取消它。
var timer = setTimeout(function() {
alert('Too long!');
}, 10000);
$.getJSON(url, function() {
clearTimeout(timer);
});https://stackoverflow.com/questions/19730239
复制相似问题