JavaScript - 在高负载脚本执行之前绘制html-mask

时间:2012-06-02 10:10:29

标签: javascript extjs

我正在使用ExtJS。我想在高负载脚本执行之前屏蔽我的窗口。当我使用

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

掩码不会出现。掩码函数启动高负载之后然后它不能改变html直到它结束。在这种情况下,我需要使用延迟(setTimeout模拟)。有没有推迟方法的解决方案吗?

2 个答案:

答案 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 / Left / Width / Height clientTop / Left / Width / Height   IE中的getComputedStyle()或currentStyle以上所有都是   实质上是在任何时候请求有关节点的样式信息   你这样做,浏览器必须给你最新的价值。在   为了做到这一点,它需要应用所有预定的更改,刷新   排队,咬紧牙关并进行回流。

答案 1 :(得分:0)

延迟功能只是解决问题的方法。