我知道ajax调用的超时设置。但我想知道的是,有没有办法显示一条消息给用户,如果ajax调用仍在处理中,但需要超过x秒。jQuery .ajax或.post消息太长
E.g.
在Ajax调用,如果它需要更长的时间超过10秒告诉用户,“通话时间超出预期”
我知道ajax调用的超时设置。但我想知道的是,有没有办法显示一条消息给用户,如果ajax调用仍在处理中,但需要超过x秒。jQuery .ajax或.post消息太长
E.g.
在Ajax调用,如果它需要更长的时间超过10秒告诉用户,“通话时间超出预期”
当然,刚刚的setTimeout()自己,会检查被通过设置一些全局变量另一个函数ajax完成回调。在该函数中,如果ajax调用仍然未完成,请显示一条消息。
我说你最好的选择是使用window.setTimeout
然而对于要等待显示您通知之前,然后在您的通话$.ajax()
添加window.clearTimeout
一行到你的success
回调长:
var loadingTimeout = window.setTimeout(function() {
// show your warning here
alert('Still loading :P');
}, 10000); // 10000ms = 10sec
$.ajax({
url: 'http://your/url/here',
dataType: 'json',
type: 'GET',
success: function(r) {
window.clearTimeout(loadingTimeout);
// your results logic here
}
})
只要ajax调用失败,将clearTimeout行放在完整的回调函数中怎么样? – PeterKA
你可以使用这里的计时器:http://stackoverflow.com/questions/4542863/jquery-ajax-call-with-timer很容易弹出警报或任何。如果有特定的反馈方法,可能会有更具体的插件。你想如何告诉用户? – zanerock
我回答,就像20分钟前: http://stackoverflow.com/questions/23691167/run-function-if-jquery-ajax-waiting-for-respond-long-enough我不能标记为重复,因为其他人没有回应我的答案,但我相当确定它的工作原理。 –