Javascript-форум (https://javascript.ru/forum/)
-   Общие вопросы Javascript (https://javascript.ru/forum/misc/)
-   -   setTimeout setInterval и др. (https://javascript.ru/forum/misc/10045-settimeout-setinterval-i-dr.html)

mycoding 16.06.2010 23:34

setTimeout setInterval и др.
 
Скажите ,пожалуйста, есть ли разница между setTimeout setInterval?
И почему, часто вместо setInterval используют setTimeoutl?
И есть ли возможность исправить такое:
В разных браузерах и на разных компьютерах setTimeout, setInterval
работают с разной скоростью. Не очень хорошо, когда то слишком быстро выполняется повторение, то слишком медленно.
Есть ли возможность это исправить?
И надо ли в таких случаях изменять замерять само время?

Gvozd 16.06.2010 23:40

Цитата:

Сообщение от mycoding
есть ли разница между setTimeout setInterval?

есть.
это две разных функции
почитайте в справке.
Цитата:

Сообщение от mycoding
И почему, часто вместо setInterval используют setTimeoutl?

наверно потому что не надо тягать за собой ресурс ссылающийся на интервал
Цитата:

Сообщение от mycoding
В разных браузерах и на разных компьютерах setTimeout, setInterval
работают с разной скоростью

разумеется
так5 и должно быть, ведь JS -однопоточный язык
Цитата:

Сообщение от mycoding
то слишком быстро выполняется повторение,

не должно быть так
они оба гарантируют, ч функция выполнится не ранее чем через указанный промежуток времени
если конечно вы не задали время менее 13 мс
Цитата:

Сообщение от mycoding
И надо ли в таких случаях изменять замерять само время?

смотря зачем.

Бобр 18.06.2010 07:28

Столкнулся с такой ситуацией, что написал:

var TimerID = setInterval(TimerUpdate1, 1000);


А в TimerUpdate1 прописал alert, так этот alert выводился циклически, не через секунду, а сразу же после закрытий предыдущего, так, что я не мог остановить работу скрипта. Браузер FireFox.

Почему так? И что можно в таких ситуациях сделать, чтобы не закрывать браузер?

Kolyaj 18.06.2010 08:40

Цитата:

Сообщение от Бобр
Почему так?

Потому что alert держится дольше секунды, и уже давно пора показать другие алерты.

Цитата:

Сообщение от Бобр
И что можно в таких ситуациях сделать, чтобы не закрывать браузер?

Не показывать alert в цикле.

Fro0sT 19.06.2010 18:21

Цитата:

Сообщение от mycoding (Сообщение 59791)
есть ли разница между setTimeout setInterval?

setTimeout создает задержку определенной функции
setInterval же создает задержку, затем после нее функция повторяется циклично

Octane 19.06.2010 21:42

Цитата:

Сообщение от Fro0sT
setInterval же создает задержку, затем после нее функция повторяется циклично

Что?

Increazon 28.10.2010 17:26

Цитата:

Сообщение от Octane (Сообщение 60185)
Что?

Ребятя вы все тупите серьезно. Особенно история с алертом. Поставь 30 секунд задержку и все будет как ты ожидаешь. :-E


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