目前我展示紡紗,用ajax設置方法調用:爲許多ajax調用顯示ajax spinners。
(function() {
$.ajaxSetup({
beforeSend: showLoader,
complete: hideLoader,
error: hideLoader
});
})();
這是工作正常,但現在的問題是發生的時候,許多AJAX調用發生,complete
被關閉裝載機!
有沒有簡單的方法來處理這個問題?
目前我展示紡紗,用ajax設置方法調用:爲許多ajax調用顯示ajax spinners。
(function() {
$.ajaxSetup({
beforeSend: showLoader,
complete: hideLoader,
error: hideLoader
});
})();
這是工作正常,但現在的問題是發生的時候,許多AJAX調用發生,complete
被關閉裝載機!
有沒有簡單的方法來處理這個問題?
我可以建議的唯一的事情就是保留一個計數器,告訴你有多少個ajax調用正在進行,當一個調用進行增量,當一個調用完成後,然後在hideLoader
函數中檢查計數器,if它高於0
不會隱藏它。
你可以看看jQuery的.ajaxStart和.ajaxStop方法。
$(document).ajaxStart(function() {
// show your loader
});
$(document).ajaxStop(function() {
// hide your loader
});
There DOM
在jQuery中綁定ajax開始和ajax結束事件的事件。使用
.ajaxStart();
.ajaxStop();
在DOM中顯示您的加載器。
你可以使用jQuery.ajaxStop(),當所有的Ajax調用已經執行被稱爲,
$(document).ajaxStop(function() {
//call hideLoader here
});
jQuery從文檔中檢查這個時間框架:* jQuery檢查是否有任何其他未完成的Ajax請求。如果不存在,jQuery觸發ajaxStop事件* – batman
沒有時間框架,它取決於請求的數量和客戶端。重大變化。 – 2015-07-20 09:51:46
據我所知,'complete'將盡快爲觸發Ajax調用的一個完整而不是全部。你是在隱藏微調器之後才完成那些請求? – lshettyl