2012-06-02 2 views
0

Я использую ExtJS. Я хочу замаскировать свое окно до выполнения скрипта highload. Когда я пользуюсьJavaScript - рисовать html-маску перед выполнением сценария высокой загрузки

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

маска не появляется. После того, как функция маски запускает highload, а затем она не может изменить html до конца. И в этом случае мне нужно использовать defer (setTimeout analog). Есть ли решение без отложенных методов?

ответ

0

Функция отсрочки - это единственный способ решить эту проблему.

0

Try:

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 Все эти выше , по существу запрашивая информацию о стиле для узла, и в любое время вы делаете это, браузер должен предоставить вам самое последнее значение. Для этого необходимо выполнить все запланированные изменения, сбросить очередь, укусить пулю и выполнить оплату.

Смежные вопросы