Логотип YeaHub

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

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

Тренажёр

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

Обучение

Навыки

Войти

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

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

© 2026 YeaHub

Документы

Медиа

Назад
Вопрос про JavaScript: browser, optimization, dom

Какие действия триггерят reflow, repaint. И как можно избежать частого reflow?

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

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

Reflow происходит, когда меняется структура страницы или размеры элементов, и браузеру нужно пересчитать расположение. Repaint вызывается, когда меняется внешний вид (например, цвет), но размеры остаются прежними. Частые reflow замедляют работу страницы, поэтому их стараются минимизировать — например, группируя изменения в DOM или используя classList, а не менять стили по одному.

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

Что такое Reflow и Repaint

  • Reflow — это перерасчет геометрии элементов: размеров, позиций, структуры. Например, при изменении ширины блока или добавлении нового элемента.

  • Repaint — это перерисовка внешнего вида без пересчета позиций. Например, смена фона или цвета текста.

Действия, вызывающие Reflow

  1. Изменение размеров элемента (width, height, margin, padding).

  2. Добавление или удаление узлов в DOM.

  3. Использование методов вроде offsetWidth, getComputedStyle (они вынуждают браузер вычислить актуальное состояние).

  4. Изменение шрифтов, контента текста.

Как избегать частых Reflow

  • Группировать несколько изменений сразу:

    element.style.cssText = "width: 100px; height: 100px; color: red;";
  • Использовать classList.add/remove, а не менять каждый стиль отдельно.

  • Работать с элементом вне DOM (через documentFragment) и потом вставлять целиком.

  • Использовать requestAnimationFrame для анимаций.

Вывод

Reflow — дорогая операция, и его стоит минимизировать при работе с динамическим контентом. Чем меньше браузеру приходится пересчитывать расположение элементов, тем быстрее работает страница.

Уровень

  • Рейтинг:

    4

  • Сложность:

    8

Навыки

  • JavaScript

    JavaScript

  • HTML

    HTML

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

#browser

#optimization

#dom

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