2012-06-02 33 views
0

我使用的是ExtJS。我想在執行高負載腳本之前掩蓋我的窗口。當我使用JavaScript - 在高負載腳本執行前繪製html-mask

App.mask(); 
some.high.load.script(); 
App.unmask(); 

掩碼不會出現。在掩碼函數啓動後,然後它不能改變HTML直到它結束。在這種情況下,我需要使用延遲(setTimeout模擬)。有沒有推遲方法的解決方案?

回答

0

函數延遲是解決這個問題的唯一方法。

0

嘗試:

App.mask(); 
document.body.offsetHeight; 
some.high.load.script(); 
App.unmask(); 

欲瞭解更多信息:http://www.phpied.com/rendering-repaint-reflowrelayout-restyle/

腳本可能會阻止優化迴流的瀏覽器,並導致 它刷新隊列,並執行所有批量修改。發生這種情況 當您請求樣式的信息,比如

的offsetTop,offsetLeft,offsetWidth,的offsetHeight scrollTop的/左/寬度/高度clientTop /左/寬度/高度 的getComputedStyle(),或currentStyle在IE中的所有這些上述的是 本質上是請求關於一個節點的風格信息,並且在你做任何時候 ,瀏覽器必須爲你提供最新的值。在 爲了這樣做,它需要應用所有預定的更改,沖洗隊列,咬緊牙關並做迴流。