intermediate

Lazy loading

Откладывайте изображения, media, routes и некритичные модули, сохраняя стабильность layout и быстрое взаимодействие.

Lazy loading откладывает работу до необходимости: изображения ниже fold, некритичные routes, тяжёлые компоненты, off-screen media. Цель — быстрее critical path, а не отложить всё подряд.

					<img src="thumb.jpg" loading="lazy" width="400" height="300" alt="…" />
				

| Ресурс | Рекомендация | |--------|--------------| | Hero/LCP image | Eager; `fetchpriority="high"`; не lazy | | Below-fold images | `loading="lazy"` с явными размерами | | Routes | `React.lazy` / dynamic import для admin или settings | | Third-party | После consent или взаимодействия |

Сочетайте lazy loading с **placeholder** и зарезервированными размерами против CLS. В React — `lazy()` и осмысленные Suspense fallback под layout skeleton.

На интервью: native image lazy vs Intersection Observer; lazy hydration; когда deferral бьёт по INP, если пользователь кликает до прихода chunk.

Типовые ошибки: lazy LCP-кандидата; skeletons с collapse и shift; infinite scroll без virtualization.

Компромисс — отложенные байты против задержки взаимодействия при быстром scroll/click.

Чеклист:

  • Не lazy-load LCP element.
  • width/height для отложенного media.
  • Third-party по необходимости.
  • Совместная оценка INP и LCP.