Javascript-форум (https://javascript.ru/forum/)
-   Events/DOM/Window (https://javascript.ru/forum/events/)
-   -   Не отображается loader (https://javascript.ru/forum/events/51914-ne-otobrazhaetsya-loader.html)

misterX_ 25.11.2014 10:22

Не отображается 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 скрипте. Все равно лоадера не видно.

рони 25.11.2014 10:50

misterX_,
потому что 5 строка его скрывает

misterX_ 25.11.2014 11:15

Перенес

var loader=document.getElementById("loader");
loader.style.display='none';

в конец выполнения функции
Synchronize();

Результат тот же к сожалению ((
Если убрать совсем, то он начинает отображаться только по завершении функции Synchronize(), а должен как раз во время выполнения.

Как сделать чтобы лоадер появился ДО выполнения функции Synchronize()?

рони 25.11.2014 11:38

misterX_,
запустить Synchronize через минимальный таймер -- скрытие loader добавить в success Synchronize

misterX_ 25.11.2014 11:49

Так и сделал, спасибо.

Еще один вопросик. При синхронном запросе виснет и гифка в браузере. Можно ли как-то этого избежать?

рони 25.11.2014 12:00

Цитата:

Сообщение от misterX_
При синхронном запросе виснет и гифка в браузере. Можно ли как-то этого избежать?

:cray:

то есть то что синхронный запрос блокирует браузер это никак не тум-тум?

рони 25.11.2014 12:01

misterX_,
http://learn.javascript.ru/ajax-xmlh...й-вызов

misterX_ 25.11.2014 12:20

Перед тем писать сюда, я всегда читаю документацию.
http://learn.javascript.ru - в первую очередь.
Что он подвешивает браузер - знаю.
Думал, может есть какие-нибудь велосипеды...

З.Ы. За помощь спасибо.

kostyanet 25.11.2014 12:46

Это значит что синхронный запрос берет больше чем дает. Юзайте worker'а

misterX_ 25.11.2014 13:03

Цитата:

Сообщение от kostyanet (Сообщение 342808)
Это значит что синхронный запрос берет больше чем дает. Юзайте worker'а

Интересная идея - сейчас вот читаю. На хабре есть хорошая статья.
Хммм, интересно, работает ли он с IE8...


З.Ы. worker - шикарная вещь. Спасибо за совет! Но мне не подойдет, он работает в IE начиная с версии 10. У меня заявлена совместимость IE>=8


Часовой пояс GMT +3, время: 20:36.