【发布时间】:2014-10-25 06:13:35
【问题描述】:
function start_map_one() {
for (var i = 0; i < 15; ++i) {
$.when(update_map()).then(evolve('W','W1',18,2,sea_limitations,20,350));
}
}
这里,update_map() 更新一个 div。然而,不是 div 按顺序视觉更新 15 次,它似乎要等到所有 15 次迭代都完成,然后显示完成的 div。
所以我理想地寻找这个订单:
update_map() 地图信息用于更新 div - 用户 看到视觉结果...然后...
evolve() 地图信息 幕后更新
update_map() 地图信息用于更新 div - 用户 看到视觉结果...然后...
evolve() 地图信息 幕后更新
等等等等 15 次
【问题讨论】:
-
update_map()返回的值是多少 -
update_map()和evolve()需要多长时间?如果您没有延迟其中一项功能的东西。可能是您更新div太快了。 -
@Eclecticist 更新运行超过 1000 个对象的数组,并根据对象信息将 div 添加到主 div。 Evolve 遍历数组中的每个对象,并可能进行几十次操作/检查。所以我很确定它不会那么快。当我删除循环以便我可以手动单击每次迭代时,每次迭代大约需要 0.3-4 秒。
-
附带说明,请记住 JavaScript 是单线程的。因此,有时在循环中重排文档时可能会出现奇怪的行为。我建议使用
setTimeout来处理您正在尝试做的事情。
标签: javascript jquery function loops iteration