2012-06-22 25 views
0

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

我知道你可以把东西剔旁边用setTimeout([function],0);

我怎么能建立一个系统,要做到这一点广泛的基础上?

+0

一种可能是你的设计元素分成I帧和优先顺序加载它们,检查出的http:// codecorner.galanter.net/2011/11/02/how-to-load-iframes-in-order-according-to-priority/ –

回答

2

JavaScript是单线程(除了最新的浏览器webworkers),所以你只有两个选择:

  1. 将非UI相关的工作到一个或多个webworkers因此它可以在后台完成。
  2. 在enxt setTimeout()上完成每个工作块的小块中执行所有非UI相关工作。这允许在非UI工作的每次滴答之间完成待处理的UI交互。这是很多代码编写工作,但如果真的值得付出努力,可以开展工作。

下面是一个例子,我改编自一些其他的长期运行的代码,我有:http://jsfiddle.net/jfriend00/JJUgv/