Рендеринг веб-страницы
Для чего модуль
Научиться принимать решения по рендерингу через пользовательские метрики и реальные сценарии, а не через «модные подходы».
Результат после прохождения
- Вы понимаете критический путь рендера и умеете находить блокирующие факторы.
- Вы интерпретируете LCP/INP/CLS как инженерные сигналы для действий.
- Вы выбираете SSR/CSR/SSG/ISR на уровне маршрутов с учетом SEO, latency и стоимости.
- Вы умеете диагностировать hydration mismatch и нестабильный initial render.
Термины и аббревиатуры
| Термин | Коротко |
|---|---|
LCP | Скорость главного контента |
INP | Отзывчивость |
CLS | Визуальная стабильность |
SSR | Рендер на сервере |
ISR | Инкрементальный revalidate |
Фокус по грейдам
Junior: понимать базовые механики и объяснять их простыми примерами.Middle: применять тему в продуктовых сценариях с учетом рисков и ограничений.Senior: управлять архитектурными trade-offs, метриками и эволюцией решения.
Как работать с модулем
- Используйте один целевой экран для всех уроков модуля.
- На каждом шаге фиксируйте baseline и результат изменения.
- Не внедряйте оптимизации без явной гипотезы и метрики успеха.
Программа модуля
Урок 1. Критический путь рендера
Цель: понимать, где именно браузер тратит время до первого полезного кадра.
Что происходит после navigation
- HTML parsing -> DOM.
- CSS parsing -> CSSOM.
- DOM + CSSOM -> render tree.
- Layout -> paint -> composite.
Блокирующие факторы
- Render-blocking CSS.
- Синхронные скрипты в критическом пути.
- Тяжелые web-font сценарии без fallback/strategy.
- Слишком большой initial JS bundle.
Что обычно улучшает FCP/LCP
- Уменьшение и приоритизация критических ресурсов.
- Отложенная загрузка не-критичных блоков.
- Оптимизация hero-контента (изображение/текст) для быстрого LCP.
Где ломается в проде
- Один «удобный» shared bundle грузится на все маршруты.
- Критический CSS смешан с редко используемыми стилями.
- Изображения выше fold не имеют правильных размеров/приоритета.
Мини-задача (обязательная)
Снимите waterfall одного экрана и выделите 3 ресурса, которые больше всего задерживают first meaningful render.
Что спросит интервьюер: как вы уменьшите время до first meaningful paint без переписывания всего приложения.
Критерий готовности по уроку: вы можете объяснить задержку первого рендера по шагам и предложить 2-3 реалистичные оптимизации.
Урок 2. CWV и диагностика
Цель: читать Core Web Vitals как рабочую систему принятия решений.
Метрики и смысл
- LCP — скорость загрузки главного контента.
- INP — отзывчивость взаимодействий.
- CLS — визуальная стабильность.
Lab vs Field
- Lab (Lighthouse) — контролируемый эксперимент.
- Field (RUM) — реальный пользовательский трафик.
Вывод: решения принимаются по field-поведению, а lab используется для гипотез и локальной проверки.
Приоритизация улучшений
- Найти наихудший пользовательский сценарий (например, mobile p75).
- Выделить bottleneck, который дает максимальный вклад в деградацию.
- Проверить эффект после изменения на том же сегменте.