2012-02-17 54 views
1

我很想念我明白的東西。希望我能解釋的問題,而無需繳納大量的應用程序特定代碼JQuery - 動態表更新

我加載從

這一切都發生在一個叫做makeTable(功能),它填充一個通過應用程序的REST API檢索JSON數據表內容預先存在的表與一個空的tbody與JQuery .append()爲每個tr - 沒有問題有...

然後我必須再次運行通過表使更多的ajax調用更新每個表中的一行在它的內容上。這需要一段時間,所以我想要表格進行渲染,然後在第二批數據進來時進行更新。我在一個名爲updateTable()的函數中執行此操作,該函數使用JQuery更新相關TD中的數據來遍歷表格 - 這也是正常工作

所以......

$(document).ready(function(){ 
makeTable(); 
updateTable(); 
}); 

我.append的uderstanding是,它會立即更新。什麼是實際發生的情況是不顯示的表,直到updateTable所有的代碼已經完成

我希望發生的(在蹩腳的僞代碼)是

When DOM is ready { 
    call makeTable function 
    display the table for the user 
    call updateTable function 
    } 

希望這是足以與

回答

1
工作

呼叫updateTable在setTimeout(..., 0)

setTimeout(function() { 
    updateTable(); 
}, 0); 
+0

你應該使用setInterval這種重複的東西:) https://developer.mozilla.org/en/window.setInterval – 2012-02-17 10:45:48

+0

他不要求做多次,他只想知道如何在處理時更新顯示的數據。 – Fox32 2012-02-17 10:54:35

+0

哦,我的不好,然後:) – 2012-02-17 11:20:57

0

嘗試在阿賈克斯的onSuccess函數使用回調函數。

因此,當真正完成makeTable函數時,顯示用戶的表格以及何時完成更新表格,如@ Fox32所述。

backbone.js對於這類東西真的很好。

+0

謝謝 - 爲了簡單起見,我使用了超時選項(我很懶)。以前沒有見過backbone.js - 看起來很有趣 – 2012-02-20 01:57:28