2014-05-16 54 views
-2

我知道ajax調用的超時設置。但我想知道的是,有沒有辦法顯示一條消息給用戶,如果ajax調用仍在處理中,但需要超過x秒。jQuery .ajax或.post消息太長

E.g.

在Ajax調用,如果它需要更長的時間超過10秒告訴用戶,「通話時間超出預期」

+0

你可以使用這裏的計時器:http://stackoverflow.com/questions/4542863/jquery-ajax-call-with-timer很容易彈出警報或任何。如果有特定的反饋方法,可能會有更具體的插件。你想如何告訴用戶? – zanerock

+0

我回答,就像20分鐘前: http://stackoverflow.com/questions/23691167/run-function-if-jquery-ajax-waiting-for-respond-long-enough我不能標記爲重複,因爲其他人沒有迴應我的答案,但我相當確定它的工作原理。 –

回答

-1

當然,剛剛的setTimeout()自己,會檢查被通過設置一些全局變量另一個函數ajax完成回調。在該函數中,如果ajax調用仍然未完成,請顯示一條消息。

0

我說你最好的選擇是使用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 
    } 
}) 
+0

只要ajax調用失敗,將clearTimeout行放在完整的回調函數中怎麼樣? – PeterKA