Атрибут loading="lazy" сообщает браузеру отложить загрузку изображения или iframe, пока оно не приближается к viewport — экономит пропускную способность и ускоряет первоначальную загрузку, без JavaScript.
Атрибут loading="lazy" сообщает браузеру отложить загрузку изображения или iframe, пока оно не приближается к viewport — экономит пропускную способность и ускоряет первоначальную загрузку, без JavaScript.
lazy — загружайте только когда прокрутка приблизит её к viewport.eager (по умолчанию) — загружайте немедленно, независимо от позиции.Браузер использует запас (загружает немного раньше, чем элемент прокручивается в представление), поэтому изображение обычно готово, когда пользователь его видит.
<img src="x.jpg" loading="lazy" width="800" height="600" />
Без размеров (или aspect-ratio), лениво загруженное изображение не имеет зарезервированного пространства, поэтому когда оно загружается, страница прыгает — нанося вред Cumulative Layout Shift (CLS). Всегда резервируйте место.
<!-- ❌ the hero/LCP image should load eagerly — lazy delays it -->
<img src="hero.jpg" loading="lazy" />
<!-- ✅ -->
<img src="hero.jpg" loading="eager" fetchpriority="high" />
Ленивая загрузка изображения Largest Contentful Paint на самом деле вредит производительности — задерживает самый важный пиксель. Ленивая загрузка только внеэкранных медиа.
// the old manual approach native lazy-loading replaced
const io = new IntersectionObserver((entries) => {
entries.forEach((e) => { if (e.isIntersecting) e.target.src = e.target.dataset.src; });
});
Встроенный loading="lazy" исключил необходимость в этом в большинстве случаев (хотя IntersectionObserver по-прежнему полезен для пользовательской логики).
Встроенная ленивая загрузка сокращает начальные байты и запросы для длинных страниц со множеством изображений — большой выигрыш для мобильных — бесплатно.
Нюансы имеют значение: резервируйте размеры для защиты CLS и держите контент выше линии сгиба/LCP изображения в режиме eager (даже fetchpriority="high"), чтобы важный контент по-прежнему загружался быстро.
Библиотека вопросов для IT-собеседований с подробными ответами — от Junior до Senior.
Поддержать