Вопрос проверяет понимание процесса рендеринга веб-страницы и оптимизации производительности браузера.
Reflow (или layout) — это процесс, при котором браузер пересчитывает геометрию элементов: их размеры, позиции, отступы. Это происходит, когда изменяется DOM, CSS-свойства, влияющие на размеры (ширина, высота, margin, padding), или при изменении размеров окна. Repaint — это процесс обновления пикселей на экране без изменения геометрии, например, при изменении цвета фона или текста.
Reflow всегда вызывает repaint, так как после пересчета геометрии нужно обновить внешний вид. Repaint может происходить без reflow, если меняются только визуальные свойства (color, visibility, background-color).
// Вызывает reflow и repaint
document.getElementById('box').style.width = '200px';
// Вызывает только repaint
document.getElementById('box').style.backgroundColor = 'red';
// Чтение offsetHeight вызывает reflow (принудительный layout)
const height = document.getElementById('box').offsetHeight;Вывод: понимание reflow и repaint помогает писать быстрые веб-приложения, особенно при анимациях и динамическом контенте. Минимизация reflow — ключ к плавному интерфейсу.
Frontend developer
Ментор по Frontend
Полное сопровождение до оффера — без дорогих курсов, с оплатой после трудоустройства
Записаться на консультацию