我有一个相当长的 JavaScript 函数,执行多个任务。我希望能够通过更新 SPAN 元素的内容以报告进度给用户。我尝试在函数代码中添加 document.getElementById('spnProgress').innerText = …… 语句。但是,在函数执行时,UI 将不会更新,因此您只会看到写入 SPAN 的最后一条消息,这并不是很有用。
目前我的解决方案是将任务分成多个函数,并在每个函数结束时设置 SPAN 消息,然后使用 window.setTimeout 调用下一个函数,延迟非常短(比如 10ms)。这样可以获得控制权,并允许浏览器重新绘制、显示更新的消息,然后再开始下一步操作。
但我发现这种方式非常混乱,难以跟踪代码,我认为应该有更好的方法。有没有人有什么建议?是否有任何方法可以在不离开函数上下文的情况下强制 SPAN 进行重绘?
谢谢。
目前我的解决方案是将任务分成多个函数,并在每个函数结束时设置 SPAN 消息,然后使用 window.setTimeout 调用下一个函数,延迟非常短(比如 10ms)。这样可以获得控制权,并允许浏览器重新绘制、显示更新的消息,然后再开始下一步操作。
但我发现这种方式非常混乱,难以跟踪代码,我认为应该有更好的方法。有没有人有什么建议?是否有任何方法可以在不离开函数上下文的情况下强制 SPAN 进行重绘?
谢谢。