如何在客户端 JavaScript 中创建一个环境,其中与用户界面和 View 相关的任何代码优先于其他代码?
我知道你可以使用 setTimeout([function],0); 将事情推到下一个刻度
我如何构建一个系统来广泛地执行此操作?
最佳答案
Javascript 是单线程的(最新浏览器中的 webworkers 除外),因此您只有两个选择:
- 将非 UI 相关工作放入一个或多个 WebWorker 中,以便可以在后台完成。
- 以小块的形式完成所有非 UI 相关的工作,其中每个工作 block 都在 enxt
setTimeout()
上完成。这允许在非 UI 工作的每次更新之间完成挂起的 UI 交互。这需要大量的编码工作,但如果确实值得付出努力,就可以使其发挥作用。
这是一个示例,我改编自其他一些长期运行的代码:http://jsfiddle.net/jfriend00/JJUgv/
关于javascript - 让 UI 优先,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11161077/