Макрозадачи — это крупные, высокоуровневые этапы работы браузера, такие как парсинг HTML, построение DOM, построение CSSOM, расчёт стилей, построение дерева рендеринга, компоновка (Layout), покраска (Paint) и композиция (Composite). Они формируют основной конвейер рендеринга.
Микрозадачи — это более мелкие, детализированные действия, которые выполняются после завершения текущей макрозадачи и до начала следующей. К ним относятся обработка промисов (Promise
), MutationObserver
, queueMicrotask
.
Ключевое различие в том, что микрозадачи всегда выполняются сразу после текущей макрозадачи, в то время как следующая макрозадача (например, следующий кадр рендеринга или обработка события таймера setTimeout
) выполняется только после того, как очередь микрозадач будет пуста.
Пример порядка выполнения:
javascript
Макрозадачи — это крупные, высокоуровневые этапы работы браузера, такие как парсинг HTML, построение DOM, построение CSSOM, расчёт стилей, построение дерева рендеринга, компоновка (Layout), покраска (Paint) и композиция (Composite). Они формируют основной конвейер рендеринга.
Микрозадачи — это более мелкие, детализированные действия, которые выполняются после завершения текущей макрозадачи и до начала следующей. К ним относятся обработка промисов (Promise
), MutationObserver
, queueMicrotask
.
Ключевое различие в том, что микрозадачи всегда выполняются сразу после текущей макрозадачи, в то время как следующая макрозадача (например, следующий кадр рендеринга или обработка события таймера setTimeout
) выполняется только после того, как очередь микрозадач будет пуста.
Пример порядка выполнения:
javascript
Зарегистрируйтесь или войдите, чтобы получить доступ к полным ответам на все вопросы из банка вопросов.