Асинхронное отображение фотографий на странице

Нужно оптимизировать загрузку статических файлов на сервере. При первой загрузке сайта очень долго загружаются файлы по типу фото, скриптов и шрифтов из-за своего веса (загрузка без кэша в режиме No Throttling):

введите сюда описание изображения

Я пытался сделать ленивую загрузку, но это не привело к желательному результату загрузки

<img ... loading="lazy" decoding="async">

Можно ли сделать загрузку асинхронными методами html/css (без js), что бы загрузка фото не блокировала основной поток загрузки других статических файлов (возможно как-то не так сказал, не бейте тапками), а была максимально близка к загрузке из кэша?

введите сюда описание изображения

Или всё же лучше сделать это через js?

UPD: Waterfall загрузки:

введите сюда описание изображения


Ответы (1 шт):

Автор решения: BlackStar1991

Судя по размеру отдаваемых изображений, вариант с отложенной отдачей изображений через JS (к примеру по скроллу) вам тоже не поможет. Если изображение весит 1,1Мб оно не сменит свой объем как вы над ним не издевайтесь. Я б рекомендовал вам пересобрать ваши изображения оптимизировав их правильным компрессором без потери качества. Как пример Squoosh

Если изображений прям очень много, то лучше выполните пакетное преобразование.

Как вариант можете перестроить с тега <img> на использование тега <picture> с нужными настройками и альтернативными форматами.

→ Ссылка