javascript - 当我的脚本正在进行一些繁重的处理时,如何强制浏览器重绘?

标签 javascript html css dom

我正在使用 innerHTML 属性动态修改 DIV,以报告需要几秒钟才能完成的进程。问题在于,在 Firefox 上,直到脚本完成后,页面才真正重新呈现以反射(reflect)该更改。这使应用程序感觉迟钝。有没有办法确保对 HTML 的更改立即显示出来,即使有更多脚本正在运行?

最佳答案

浏览器是单线程的。当脚本运行时,浏览器不能做任何事情。如果你想做进度表之类的事情,你必须使用 setTimeout() , 或 setInterval() ,并将您的任务分解为按一定间隔运行的更小的 block 。这会在脚本运行之间留下间隙,将控制权交还给浏览器,浏览器可以在此处重绘。

关于javascript - 当我的脚本正在进行一些繁重的处理时,如何强制浏览器重绘?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1209689/

相关文章:

javascript - 如何将 NgStyle 与条件函数一起使用?

javascript - 如何在 JavaScript 中向当前年份添加特定年份?

javascript - 使用 mysql 数据更新 HTML 表格单元格而不是添加新单元格

html - 为什么悬停在标题上不显示?

html - 如何将 FontAwesome 字符添加到所有 block 引用的开头?

html - 动态侧边栏宽度取决于主 div

javascript - 我如何制作这样的番茄钟?

javascript - jQuery 更改事件代码未运行可能的事件冲突

javascript - 如何禁用/停止 jQuery 函数?

javascript - event.target 分别采用 react 子组件