2012-02-17 56 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