我有一個儀表板UI,它使用jQuery選項卡腳本。每個標籤通過單獨的Ajax請求加載其內容。將Ajax內容加載到隱藏選項卡 - 而不是當前選項卡
這裏是我遇到的問題:
- 的用戶將打開多個標籤頁,其他
- 每個選項卡中創建和Ajax請求後,一個適合每個
- 最後由要創建的選項卡當前處於打開狀態,並且一旦請求完成,每個選項卡的內容就會顯示在此選項卡上
- 一旦用戶單擊任何選項卡,內容就會按照它的設置進行設置。
基本上,如果用戶打開一個新標籤提前最近的選項卡的Ajax請求完成,兩者的Ajax請求的內容而當前打開的選項卡上顯示,直到用戶點擊任何選項卡,然後一切都顯示爲它應該是。
我已經嘗試將Ajax調用設置爲async: false
,它解決了這個問題,因爲它迫使ajax請求在當前選項卡上完成並加載,然後允許用戶打開另一個選項卡,但用戶反饋一直是負面的用戶認爲儀表板凍結(它具有)。
我還設置了一個超時函數來加載帶有加載.gif的選項卡,然後發出async: false
Ajax請求。用戶反饋相同,即使加載gif的超時函數一旦發出Ajax請求就會停止它的動畫。
Ajax請求如下:
$.ajax ({
url: report,
cache: false,
success: function(html) {
$("#loading").hide();
$("#tabcontent").append('<div id="c'+count+'" class="tabContentContainer">'+html+'</div>');
},
error: function(x, status, error) {
$.ajax ({
url: 'admin/error_notification.php',
type: "POST",
data:{
error: error
}
});
},
async:true
});
那麼,是你成功的功能動態地創建標籤,否則標籤已經存在?另外,你是使用jQuery UI標籤小部件還是其他一些jQuery插件? – Codasaurus 2013-03-26 22:51:33
感謝您的回覆!成功功能只是將內容返回到已創建的選項卡中。該選項卡之前創建了以下行:'$(「#tabul」)。append('
您應該在標籤之間來回切換時使用Jquery Block UI Plugin(http://www.malsup.com/jquery/block/)。這樣,如果前一選項卡的ajax請求正在進行,則用戶無法單擊其他選項卡。而不是在ajax成功功能上解鎖它 – 2013-03-28 23:36:14