僅當ajax調用花費的時間超過一秒鐘時,是否可以顯示「加載..」動畫?我的一些ajax調用非常快,但在消失之前,我仍然可以看到加載圖標幾分之一秒。可能只是我,但我發現它讓人分心。我不想完全刪除它。有什麼建議麼?這裏是我的代碼 -jQuery - 僅在ajax調用需要一秒以上時才顯示加載圖像?
$('#loading').hide()
.ajaxStart(function() {
$(this).show();
})
.ajaxStop(function() {
$(this).hide();
});
<div id="loading">
<img alt="Loading, please wait.." src="/content/images/spinner.gif" />
</div>
非常感謝!它像一個魅力。 – tempid 2012-01-31 04:51:36
@Joseph我有同樣的問題,感謝張貼這個解決方案。我可以澄清語法 - var $ loader = $(「#loading」),timer;正在創建包含計時器和選擇器id =加載的jquery對象。定時器&& clearTimeout(定時器);爲什麼這是這樣寫的,而不是簡單的clearTimeout(定時器)?我曾嘗試類似,但只是成功推遲了演出,而不是僅在x毫秒後出現。仍然不清楚如何封裝全球事件達到它所達到的目標。你能擴展嗎? – codepuppy 2012-09-13 14:37:18
@codepuppy - 'clearTimeout'需要一個計時器ID作爲其參數。第一次運行'ajaxStart'時,'timer'將會是未定義的。雖然將undefined傳遞給'clearTimeout'似乎沒有引發任何錯誤,但我還沒有對它進行足夠的測試,所以我決定首先檢查'timer'是否有一個id。知道'timer && clearTimeout(timer);'相當於'if(timer){clearTimeout(timer); }'。 – 2012-09-13 18:41:22