我有一个很长的 JavaScript 函数,它执行许多任务,我想通过在执行过程中使用消息更新 SPAN 元素的内容来向用户报告进度。我尝试在整个函数代码中添加 document.getElementById('spnProgress').innerText = ... 语句。
但是,当函数执行时,UI 不会更新,因此您只会看到写入 SPAN 的最后一条消息,这不是很有帮助。
我目前的解决方案是将任务分解为多个函数,在每个函数结束时,我设置 SPAN 消息,然后通过 window.setTimeout 调用以非常短的延迟(比如 10 毫秒)“触发”下一个函数。这会产生控制并允许浏览器在开始下一步之前使用更新的消息重新绘制 SPAN。
但是我发现这非常混乱且难以遵循代码,我认为必须有更好的方法。有没有人有什么建议?有什么方法可以强制 SPAN 重新绘制而不必离开函数的上下文?
谢谢