2012-06-22 20 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/