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