我遗漏了一些明显的东西,我确定。希望我能在不发布大量特定应用代码的情况下解释问题
我正在从通过应用程序的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
}
希望这足以与
一起使用答案 0 :(得分:1)
在setTimeout(..., 0)
setTimeout(function () {
updateTable();
}, 0);
答案 1 :(得分:0)
尝试在ajax onSuccess函数中使用回调函数。
因此,当makeTable函数真正完成时,将为用户显示表,并在完成时使用超时更新表,如@ Fox32所说。
backbone.js对这种东西真的很好。