0

如何在客户端 javascript 中创建与用户界面和视图相关的任何代码优先于其他代码的环境?

我知道你可以将事情推到下一个刻度setTimeout([function],0);

我怎样才能建立一个系统来广泛地做到这一点?

4

1 回答 1

2

Javascript 是单线程的(最新浏览器中的 webworkers 除外),因此您只有两个选择:

  1. 将非 UI 相关的工作放到一个或多个 webworkers 中,以便可以在后台完成。
  2. 在小块中完成所有非 UI 相关的工作,其中每个工作块都在 enxt 上完成setTimeout()。这允许在非 UI 工作的每个滴答之间完成待处理的 UI 交互。编写代码需要做很多工作,但如果真的值得付出努力,就可以让它工作。

这是一个示例,我改编自其他一些长时间运行的代码:http: //jsfiddle.net/jfriend00/JJUgv/

于 2012-06-22T17:25:31.063 回答