«Ленивая загрузка изображений» – это практика, которая популярна уже около десятилетия, и на то есть веская причина: изображения, как правило, – самая тяжелая часть страницы, и возможность не отображать картинки, которые не видны на экране значительно ускоряет загрузку страницы. Есть плагины для ленивой загрузки изображений практически для каждого JavaScript-фреймворка, или же можно использовать Intersection Observer API. Сейчас такой функционал стал очень востребован и разработчики Chrome добавили встроенную поддержку lazy loading
в браузер.
Этот новый API ленивой загрузки сводится к простому атрибуту loading="lazy"
для тега img
:
<img src="path/to/logo.png" loading="lazy">
Для точности эксперимента я добавил Алерт при загрузке изображения:
<img src="path/to/logo.png" loading="lazy" onload="alert('Loaded!');">
Когда пользователь прокручивает страницу до изображения, запускаются загрузка и рендеринг. У этого атрибута есть три значения:
- auto - поведение по умолчанию для загрузки изображения
- lazy - загружает изображение, когда оно становится видимым
- eager - загружает изображение сразу, независимо от положения прокрутки
ДЕМО:
See the Pen YzPZeMx by Mikhail Larchanka (@larchanka) on CodePen.