在 JavaScript 中强制 DOM 刷新
我正在单击事件处理程序中运行一个循环,执行以下操作:
- 运行大量计算(需要 1-3 秒)
- 调用
$("
- + data +
").appendTo($(" #results"))
问题是,在循环终止之前 DOM 不会刷新。运行循环 100 次迭代这需要太长时间,我想在每次计算时给出一个结果。
如何强制刷新 DOM?
I am running a loop within a click event handler doing the following:
- run heavy computation (takes 1-3s)
- call
$("<li> + data + </li>").appendTo($("#results"))
The problem is, that the DOM is not refreshed until the loop has terminated. Running the loop for 100 iterations this takes too long, I would like to give a result every time I computed one.
How can I force the DOM to be refreshed?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
如果您使用的浏览器支持它,workers 非常适合这种情况。
如果没有,请在每次计算后使用
setTimeout
来中断调用堆栈并允许浏览器在渲染上使用时间。If you are in a browser that supports it, workers are ideal for this situation.
If not, use
setTimeout
after each computation to break the callstack and allow the browser to use time on rendering.