繁体   English   中英

在Javascript循环期间强制重绘

[英]Force repaint during Javascript loop

我想在Javascript循环中强制重绘。 例如:

var s = document.getElementById("foo");
for (var i = 0; i < 10000; i++)
    s.innerText = i + " times";

最后更新,但是我想观察每个中间步骤。 解决此问题的常见方法是使用setTimeout ,但是有三个不可接受的原因:

  • 页面上还有其他按钮/链接等,重要的是在循环运行时,不能单击其中的任何一个。
  • 在循环的最后,我想显示一个弹出窗口,如果超时触发,则标准的弹出窗口阻止程序将其隐藏,因为它不再由用户启动。
  • 如果用户在循环运行时单击,我希望该单击缓冲在循环结束之前,而不是在循环进行一半时触发。

有没有办法强制浏览器重新粉刷?

恐怕这是您唯一的解决方案,因为不可重画的中间内容作为提高浏览器渲染速度的谓词很重要。

也许您可以在您不想触发的那些单击事件中管理“缓冲我”标志? 或者更好的说一个不要缓冲我的标志...

希望对您有所帮助。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM