JQuery - 动态表更新

时间:2012-02-17 07:26:28

标签: jquery ajax

我遗漏了一些明显的东西,我确定。希望我能在不发布大量特定应用代码的情况下解释问题

我正在从通过应用程序的rest api

检索到的json数据中加载表内容

这一切都发生在一个名为makeTable()的函数中,该函数用一个空的tbody填充一个预先存在的表,每个tr都有一个JQuery .append() - 没问题......

然后我必须再次运行该表,进行更多的ajax调用,根据它的内容更新每个表行中的一个单元格。这需要一段时间,所以我想要teh表来渲染,然后在第二批数据进入时更新。我在一个名为updateTable()的函数中执行此操作,该函数使用JQuery更新相关TD中的数据来遍历表 - 这也是工作正常

所以......

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

我对.append的理解是它会立即更新。实际发生的是,在updateTable中的所有代码完成之前,表格才会显示

我想要发生的事情(在糟糕的伪代码中)是

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

希望这足以与

一起使用

2 个答案:

答案 0 :(得分:1)

setTimeout(..., 0)

中调用updateTable
setTimeout(function () {
   updateTable();
}, 0);

答案 1 :(得分:0)

尝试在ajax onSuccess函数中使用回调函数。

因此,当makeTable函数真正完成时,将为用户显示表,并在完成时使用超时更新表,如@ Fox32所说。

backbone.js对这种东西真的很好。