Как происходит отрисовка страницы в браузере?

«Как происходит отрисовка страницы в браузере?» — вопрос из категории Веб-тестирование, который задают на 24% собеседований AQA / Automation. Ниже — развёрнутый ответ с разбором ключевых моментов.

Ответ

Понимание процесса рендеринга критично для тестирования производительности и поиска визуальных дефектов. Браузер проходит несколько этапов:

  1. Парсинг HTML → построение DOM-дерева.
  2. Парсинг CSS → построение CSSOM-дерева.
  3. Объединение DOM и CSSOM → формирование Render Tree (только видимые элементы).
  4. Layout (Reflow) → расчёт точного положения и размеров каждого элемента.
  5. Paint → заполнение пикселей (растеризация) в слои.
  6. Composite → компоновка слоёв в окончательное изображение.

Для тестирования это означает:

  • Проверка корректности Layout: Изменение размера окна, контента или шрифтов не должно ломать вёрстку (тестирование reflow).
  • Анализ производительности: В Chrome DevTools > Performance можно записать и проанализировать каждый этап. Долгие задачи (Long Tasks) в основном возникают на этапах Layout и Paint.
  • Поиск причин визуальных багов: Если стиль применён, но элемент не отображается — возможно, он не попал в Render Tree (display: none). Если элемент «мигает» — проблема может быть в последовательности загрузки CSS/JS.
  • Пример проверки в DevTools: Откройте вкладку Rendering и включите Paint flashing. Зелёные вспышки укажут на области, которые перерисовываются слишком часто — это потенциальная цель для оптимизации.