2015-08-12 2 views
4

С учетом следующего кода, когда будет выполняться функция go?setTimeout и планирование вызова функции

setTimeout(go, 0); 

Будет ли добавлен в конец очереди заданий сразу, или добавляется в конец очереди заданий по истечении минимального интервала для setTimeout?

+0

Это сообщение может помочь: http://stackoverflow.com/questions/779379/why-is-settimeoutfn-0-sometimes-useful – Brian

+0

я вещь в следующем цикле обработки событий. – webduvet

+0

Вероятно, это зависит от реализации браузера. В хром он, кажется, добавляется после ровно 2 мс. Я не смог получить согласованные результаты в firefox, иногда он работал так же быстро, как 1,25 мс, выкидывая 2 мс из окна. http://jsfiddle.net/q2tf393g/ –

ответ

2

Большинство браузеров реализовать минимальное время задержки 4 мс. Вы можете использовать более низкие значения без ошибок, но при фактическом выполнении сценария браузер перезапишет значение таймаута.

https://developer.mozilla.org/en-US/docs/Web/API/WindowTimers/setTimeout?redirectlocale=en-US&redirectslug=DOM%2Fwindow.setTimeout#Minimum.2F_maximum_delay_and_timeout_nesting

https://html.spec.whatwg.org/multipage/webappapis.html#timers

+0

Еще одно хорошее объяснение можно найти здесь (http://geekabyte.blogspot.co.uk/201/2012/javascript-effect-of-setting-settimeout.html) – Matijs

0

с тайм-аута 0, то он будет добавлен в конец очереди заданий сразу

+1

Можете ли вы предоставить источник? – Ben

Смежные вопросы