Логотип YeaHub

База вопросов

Собеседования

Тренажёр

База ресурсов

Обучение

Навыки

Задачи

Войти

Выбери, каким будет IT завтра — вместе c нами!

YeaHub — это полностью открытый проект, призванный объединить и улучшить IT-сферу. Наш исходный код доступен для просмотра на GitHub. Дизайн проекта также открыт для ознакомления в Figma.

© 2026 YeaHub

AI info

Карта сайта

Документы

Медиа

Назад
Вопрос про JavaScript: event loop, rendering, browser, requestAnimationFrame

На каком этапе Event Loop происходит перерисовка страницы?

Вопрос проверяет понимание связи между Event Loop и рендерингом страницы в браузере.

Короткий ответ

Перерисовка страницы происходит после выполнения всех микрозадач и макрозадач в текущем цикле Event Loop. Браузер планирует рендеринг перед следующей макрозадачей, но не гарантирует его каждый цикл. Для синхронизации с рендерингом используют requestAnimationFrame.

Длинный ответ

Как Event Loop связан с рендерингом

В браузере Event Loop управляет выполнением JavaScript, обработкой событий и рендерингом страницы. Перерисовка (repaint) и перекомпоновка (reflow) происходят на специальном этапе, который следует за выполнением всех микрозадач и макрозадач в текущем цикле. Браузер может объединять несколько изменений в один рендеринг для оптимизации производительности.

Порядок выполнения

  • Сначала выполняются все макрозадачи (например, setTimeout, события ввода).
  • Затем обрабатываются все микрозадачи (Promise.then, MutationObserver).
  • После этого браузер проверяет, нужно ли обновить рендеринг (обычно с частотой 60 FPS).
  • Если да, то запускается этап рендеринга: стили, layout, paint, compositing.

Пример кода

console.log('start');

setTimeout(() => console.log('macro'), 0);

Promise.resolve().then(() => console.log('micro'));

requestAnimationFrame(() => console.log('render'));

console.log('end');
// Вывод: start, end, micro, render, macro

В этом примере requestAnimationFrame выполняется до макрозадачи, так как он привязан к этапу рендеринга.

Вывод

Понимание этого механизма помогает избегать задержек в UI и правильно использовать requestAnimationFrame для анимаций, гарантируя синхронизацию с обновлением экрана.

Frontend developer

tech
tech
tech
tech
tech
tech
tech
tech
tech

Ментор по Frontend

Полное сопровождение до оффера — без дорогих курсов, с оплатой после трудоустройства

Записаться на консультацию

Уровень

  • Рейтинг:

    4

  • Сложность:

    6

Навыки

  • JavaScript

    JavaScript

  • HTML

    HTML

Ключевые слова

#event loop

#rendering

#browser

#requestAnimationFrame

Подпишись на React Developer в телеграм

Frontend developer

tech
tech
tech
tech
tech
tech
tech
tech
tech

Ментор по Frontend

Полное сопровождение до оффера — без дорогих курсов, с оплатой после трудоустройства

Записаться на консультацию