我正在使用 innerHTML
属性动态修改 DIV
,以报告需要几秒钟才能完成的进程。问题在于,在 Firefox 上,直到脚本完成后,页面才真正重新呈现以反射(reflect)该更改。这使应用程序感觉迟钝。有没有办法确保对 HTML 的更改立即显示出来,即使有更多脚本正在运行?
最佳答案
浏览器是单线程的。当脚本运行时,浏览器不能做任何事情。如果你想做进度表之类的事情,你必须使用 setTimeout()
, 或 setInterval()
,并将您的任务分解为按一定间隔运行的更小的 block 。这会在脚本运行之间留下间隙,将控制权交还给浏览器,浏览器可以在此处重绘。
关于javascript - 当我的脚本正在进行一些繁重的处理时,如何强制浏览器重绘?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1209689/