Ленивая загрузка изображений: как работает атрибут loading
loading
Ленивая загрузка (loading="lazy"
) — это способ загрузить изображение только тогда, когда оно реально нужно пользователю. Например, когда он докрутил до него на странице.
Вот что она даёт:
Раньше, чтобы подгрузить изображение только тогда, когда оно нужно, мы:
IntersectionObserver
,requestIdleCallback
, setTimeout
, событиями прокрутки,Это было сложно.
Но теперь — всё иначе.
Благодаря атрибуту loading
, браузер сам решает, когда загрузить изображение или фрейм.
<img src="pokemon.png" loading="lazy" alt="Покемон пикачу" />
💡 Работает из коробки. Поддерживается большинством современных браузеров.
📖 Поддержка: caniuse.com/loading-lazy
loading
Значение | Что делает | Когда использовать |
---|---|---|
eager | Загружает изображение сразу (по умолчанию) | Для above-the-fold контента |
lazy | Загружает, когда элемент попадает в viewport | Для всего, что ниже первого экрана |
<picture>
Да, это работает и внутри тега <picture>
:
<picture>
<source media="(min-width: 768px)" srcset="test.jpg 1x, test.jpg 2x" />
<img src="pokemon.jpg" loading="lazy" alt="Покемон пикачу" />
</picture>
<iframe>
<iframe
src="https://www.youtube.com/watch?v=-R_3t7sHZVA"
loading="lazy"
width="630"
height="420"
title="Видео про покемонов"
></iframe>
loading="lazy"
Атрибут loading
— это простой способ:
Подключайте. Используйте. И пусть ваши страницы загружаются не только красиво но быстро.