Javascript 如何检测jQueryAjax请求是否已持续5秒以上
是否可以判断jQueryAjax请求是否已经进行了超过一定长度的时间?如果请求已持续10秒,我想提示我的站点用户重新加载并重试,但我在文档中找不到任何内容来满足我的请求。设置超时,然后在ajax调用完成后取消它Javascript 如何检测jQueryAjax请求是否已持续5秒以上,javascript,jquery,ajax,Javascript,Jquery,Ajax,是否可以判断jQueryAjax请求是否已经进行了超过一定长度的时间?如果请求已持续10秒,我想提示我的站点用户重新加载并重试,但我在文档中找不到任何内容来满足我的请求。设置超时,然后在ajax调用完成后取消它 var timer = setTimeout(function() { alert('Too long!'); }, 10000); $.getJSON(url, function() { clearTimeout(timer); }); 尝试设置timeout属性并获
var timer = setTimeout(function() {
alert('Too long!');
}, 10000);
$.getJSON(url, function() {
clearTimeout(timer);
});
尝试设置timeout属性并获取错误处理程序参数。可能的值是 超时、错误、中止和解析器错误
因此,对于站点中的所有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);
}
});
@Murali设置短超时将使整个请求失败。问题只是测量一个特定请求运行的时间,而不是取消它。您是想为一个ajax请求还是任何ajax请求执行此操作?所有ajax@Adriansalazar都必须确保它在页面加载时运行。像这个$function{/*在这里粘贴代码*/}
$.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);
}
});