使UI优先

时间:2012-06-22 17:16:49

标签: javascript

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

我知道你可以用setTimeout([function],0);

将事情推到下一个

我如何建立一个广泛的系统来实现这一目标?

1 个答案:

答案 0 :(得分:2)

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

  1. 将非UI相关工作放入一个或多个网络工作者,以便在后台完成。
  2. 在enxt setTimeout()上完成每个工作块的小块中进行所有与UI无关的工作。这允许在非UI工作的每个滴答之间完成挂起的UI交互。这是很多代码工作,但如果真的值得付出努力就可以工作。
  3. 这是一个例子,我改编自其他一些长期运行的代码:http://jsfiddle.net/jfriend00/JJUgv/