我知道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我不能標記爲重複,因爲其他人沒有迴應我的答案,但我相當確定它的工作原理。 –