Javascript-форум (https://javascript.ru/forum/)
-   Общие вопросы Javascript (https://javascript.ru/forum/misc/)
-   -   Пауза в JS (https://javascript.ru/forum/misc/3123-pauza-v-js.html)

Gvozd 26.03.2009 14:34

вообще-то там не было многопоточности.
а было следующее:
вы вызвали функцию, отправляющую запрос на сервер.
функция выполнилась, и в данный момент никакого JS-а не выполняется.
то, что в это время обрабатывается запрос на сервер, JS-а не касается.
когда приходит результат, вызывается обработчик события onreadystatechange, который и обрабатывает запрос.
в момент между отправлением запроса, и приходом результат, в случае асинхронного JS можно выполнить какую-то другую функцию.
если она будет длится достаточно долго, то может произойти так, что результат с суревера уже пришел,но еще не был обработан.
пока не освободится очередь JS, запрос не будет обработан соответствующим обработчиком события.но как только освободится очередь, он будет выполнен.
также и задержка выполнения не гарантирует вызова через указанный промежуток времени.
она гарантирует вызов через время не меньшее указанного промежутка.если будет очередь выполнения, он просто станет в очередь, и будет ждать
для более подробного ознакомления с этими процессами,почитайте статью

konstantinopol 26.03.2009 15:06

Вот мне нужна такая фигня которая раболабы как alert, только не выводилось бы на экран.
С alert в нужном месте всё работает.

Gvozd 26.03.2009 15:13

вы неправильно рассуждаете.
то, что вы хотите сделать при помощи алерта, также можно сделать без него навреняка.
начиная от повешения на settimeout, и заканчивая добавлением своего кода к обработчику события прихода результата с сервера.
более того второй предпочтительней, потому что заранее неизвестно сколько будет обрабатыватся запрос.
то, что вы хотите сейчас сделать это лиш "костыли", причем костыли очень плохие.
можно,если хотите просто поставить цикл на пару тысяч итераций.
он задержит выполнения, как это сделал бы алерт.
но это неправльный подход.
разберитесь в google-API, и выясните, как добавить свой обработчик события к ихнему событию.
это единственно правильный вариант решения

AzriMan 26.03.2009 17:46

Цитата:

Сообщение от Gvozd (Сообщение 15298)
можно,если хотите просто поставить цикл на пару тысяч итераций.
он задержит выполнения, как это сделал бы алерт.

не успев дочитать до этого предложения захотелось написать: "да сделай себе почти бесконечный цикл и радуйся".

sergey390 24.02.2014 14:51

посмотрите на этом сайтк http://learn.javascript.ru/settimeout-setinterval#повторение
 
посмотрите здесь


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