Если вы не знаете, о чем я говорю, прочитайте John Resig - как работают таймеры JavaScript и Является ли JavaScript гарантированным однопоточным?
Существует несколько триггеров, которые запускают задачи в исполнении JS-движков FiFo. Это не является частью какого-либо стандарта, поэтому я пытаюсь найти исчерпывающий список этих триггеров. (Я думаю, что все это сводится к внутренним обработчикам событий, например, к событиям загрузки script или событиям таймера, но я предпочел бы игнорировать внутренности ядра и смотреть на вещи с точки зрения пользователя.)
До сих пор я идентифицировал
-
<script>
элементы в исходном документе (включая те, которые добавленыdocument.write
) * -
<script>
элементы, вставленные JS во время выполнения * - Обработчики событий
- они включают в себя широкий спектр случаев, таких как взаимодействие с пользователем, события ошибки, сообщения веб-рабочих или обратные вызовы Ajax... -
window.setTimeout
-
window.setInterval
*) только в средах браузера /DOM
Больше? Любые различия между двигателями JS?