2015-07-20 55 views
1

目前我展示紡紗,用ajax設置方法調用:爲許多ajax調用顯示ajax spinners。

(function() { 
    $.ajaxSetup({ 
     beforeSend: showLoader, 
     complete: hideLoader, 
     error: hideLoader 
    }); 
})(); 

這是工作正常,但現在的問題是發生的時候,許多AJAX調用發生,complete被關閉裝載機!

有沒有簡單的方法來處理這個問題?

+0

據我所知,'complete'將盡快爲觸發Ajax調用的一個完整而不是全部。你是在隱藏微調器之後才完成那些請求? – lshettyl

回答

0

我可以建議的唯一的事情就是保留一個計數器,告訴你有多少個ajax調用正在進行,當一個調用進行增量,當一個調用完成後,然後在hideLoader函數中檢查計數器,if它高於0不會隱藏它。

1

你可以看看jQuery的.ajaxStart.ajaxStop方法。

$(document).ajaxStart(function() { 
    // show your loader 
}); 

$(document).ajaxStop(function() { 
    // hide your loader 
}); 
0

There DOM在jQuery中綁定ajax開始和ajax結束事件的事件。使用

.ajaxStart(); 
.ajaxStop(); 

在DOM中顯示您的加載器。

0

你可以使用jQuery.ajaxStop(),當所有的Ajax調用已經執行被稱爲,

$(document).ajaxStop(function() { 
    //call hideLoader here 
}); 
+0

jQuery從文檔中檢查這個時間框架:* jQuery檢查是否有任何其他未完成的Ajax請求。如果不存在,jQuery觸發ajaxStop事件* – batman

+0

沒有時間框架,它取決於請求的數量和客戶端。重大變化。 – 2015-07-20 09:51:46