Ответ
Браузер отрисовывает страницу поэтапно:
- Парсинг HTML — строится DOM-дерево.
- Парсинг CSS — формируется CSSOM (CSS Object Model).
- Объединение DOM и CSSOM — создаётся Render Tree (только видимые элементы).
- Layout (Reflow) — вычисляются размеры и позиции элементов.
- Paint — отрисовываются пиксели (растеризация).
- Composite — слои объединяются в финальное изображение.
Оптимизация:
- Избегайте частых изменений стилей, вызывающих reflow (например,
offsetWidth). - Используйте
transformиopacityдля анимаций (они не трогают Layout/Paint).
Пример:
// Плохо — вызывает reflow
element.style.width = '100px';
// Лучше — использует Composite
element.style.transform = 'scale(1.5)';