我正在使用ExtJS。我想在高负载脚本执行之前屏蔽我的窗口。当我使用
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 / Left / Width / Height clientTop / Left / Width / Height IE中的getComputedStyle()或currentStyle以上所有都是 实质上是在任何时候请求有关节点的样式信息 你这样做,浏览器必须给你最新的价值。在 为了做到这一点,它需要应用所有预定的更改,刷新 排队,咬紧牙关并进行回流。
答案 1 :(得分:0)
延迟功能只是解决问题的方法。