Пауза в JS
Мне надо сделать паузу.
Скрипт работает с ошибкой если нет паузы(alert) Если я вставляю alert то всё работает превосходно. setTimeout("setPoints()",10); и window.setInterval("setPoints()",10); Не рабатают, вернее они работают, но браусэр виснет. Есть другие альтернативы?? |
Браузер не виснет из-за setTimeout.
|
Но если я его убераю всё перестаёт висеть
|
Блин это полная жопа.
Часть работает правильно, а часть начинает работать только после двойного нажатия на кнопку. aaaaaaaaaaaaaaaaaaaaaaaa |
Причину в другом ищите.
|
Я уже понял что это не пауза. Но ...
|
может быть Вы покажете код, который приводит к этим подвисаниям? а то знаете, экстрасенсы сейчас отдыхают на югах..
|
Продолжение темы:
Всё работает включая setTimeout и window.setInterval Но как мне сделать паузу в посередине функции. У меня процессы идут паролельно и array неуспевает заполнится данными. Надеюсь вы поняли что я хотел узнать ... |
в JS нету паузы.
более того в JS нету потоков. и нету паралельно идущих событий все события происходят по очереди, но при этом создается иллюзия многопоточности его работы. на самом деле это не так |
Ну а что нащет вчерашнего случая с таблицей??
Так же у меня и array не успевает заполниться только отдельно на него я паузу поставить немогу ... |
вообще-то там не было многопоточности.
а было следующее: вы вызвали функцию, отправляющую запрос на сервер. функция выполнилась, и в данный момент никакого JS-а не выполняется. то, что в это время обрабатывается запрос на сервер, JS-а не касается. когда приходит результат, вызывается обработчик события onreadystatechange, который и обрабатывает запрос. в момент между отправлением запроса, и приходом результат, в случае асинхронного JS можно выполнить какую-то другую функцию. если она будет длится достаточно долго, то может произойти так, что результат с суревера уже пришел,но еще не был обработан. пока не освободится очередь JS, запрос не будет обработан соответствующим обработчиком события.но как только освободится очередь, он будет выполнен. также и задержка выполнения не гарантирует вызова через указанный промежуток времени. она гарантирует вызов через время не меньшее указанного промежутка.если будет очередь выполнения, он просто станет в очередь, и будет ждать для более подробного ознакомления с этими процессами,почитайте статью |
Вот мне нужна такая фигня которая раболабы как alert, только не выводилось бы на экран.
С alert в нужном месте всё работает. |
вы неправильно рассуждаете.
то, что вы хотите сделать при помощи алерта, также можно сделать без него навреняка. начиная от повешения на settimeout, и заканчивая добавлением своего кода к обработчику события прихода результата с сервера. более того второй предпочтительней, потому что заранее неизвестно сколько будет обрабатыватся запрос. то, что вы хотите сейчас сделать это лиш "костыли", причем костыли очень плохие. можно,если хотите просто поставить цикл на пару тысяч итераций. он задержит выполнения, как это сделал бы алерт. но это неправльный подход. разберитесь в google-API, и выясните, как добавить свой обработчик события к ихнему событию. это единственно правильный вариант решения |
Цитата:
|
посмотрите на этом сайтк http://learn.javascript.ru/settimeout-setinterval#повторение
посмотрите здесь
|
Часовой пояс GMT +3, время: 18:46. |