Не отображается loader
Доброго всем дня!
Продолжаю разбираться в JS :-) В общем есть такой код var loader=document.getElementById("loader"); loader.innerHTML='<img class="basket" src="images/loader.gif"/>' loader.style.display=''; Synchronize(); loader.style.display='none'; вот лоадер <div style="display:none;background-color:grey; position: relative !important" id="loader"></div> Synchronize() - делает синхронный запрос на сервер (подвешивает браузер, так нужно) Вопрос - почему не отображается loader? Причем если открыть Developer tools и пошагово все пролистать, то в окне можно увидеть loader. UPD: думал, что функция быстро выполняется, поэтому лоадера не видно. Поставил задержку sleep(5) в php скрипте. Все равно лоадера не видно. |
misterX_,
потому что 5 строка его скрывает |
Перенес
var loader=document.getElementById("loader"); loader.style.display='none'; в конец выполнения функции Synchronize(); Результат тот же к сожалению (( Если убрать совсем, то он начинает отображаться только по завершении функции Synchronize(), а должен как раз во время выполнения. Как сделать чтобы лоадер появился ДО выполнения функции Synchronize()? |
misterX_,
запустить Synchronize через минимальный таймер -- скрытие loader добавить в success Synchronize |
Так и сделал, спасибо.
Еще один вопросик. При синхронном запросе виснет и гифка в браузере. Можно ли как-то этого избежать? |
Цитата:
то есть то что синхронный запрос блокирует браузер это никак не тум-тум? |
|
Перед тем писать сюда, я всегда читаю документацию.
http://learn.javascript.ru - в первую очередь. Что он подвешивает браузер - знаю. Думал, может есть какие-нибудь велосипеды... З.Ы. За помощь спасибо. |
Это значит что синхронный запрос берет больше чем дает. Юзайте worker'а
|
Цитата:
Хммм, интересно, работает ли он с IE8... З.Ы. worker - шикарная вещь. Спасибо за совет! Но мне не подойдет, он работает в IE начиная с версии 10. У меня заявлена совместимость IE>=8 |
Часовой пояс GMT +3, время: 20:36. |