Задать вопрос
kot2566
@kot2566

Как сделать lazy-load нормально(async load)?

Пытаюсь сделать отложенную загрузку GIF с помощью библиотеки vanila-lazyload, но проблема в том, что браузер всё ещё ждёт загрузки этой gif (индикатор загрузки крутится.
При этом библиотека верно срабатывает, заменяя data-src на src.
Если сделать инициализацию библиотеки с задержкой (SetTimeout), то работает, как будто, правильно.
Как сделать нормально, чтобы загрузка страницы не зависела от загрузки gif?

<div class="img_container">
        <img class="lazy" data-src="https://cdn.akamai.steamstatic.com/steam/apps/1245620/extras/ER_Steam_Gif_616x260.gif?t=1639598512" alt="">
    </div>

    <script src="https://cdn.jsdelivr.net/npm/vanilla-lazyload@17.5.0/dist/lazyload.min.js"></script>

    <script>
 var lazyLoadInstance = new LazyLoad({
            });

/*
        setTimeout(function () {
            var lazyLoadInstance = new LazyLoad({
            });
        }, 2000);
*/
    </script>


Без SetTimeout:
https://kepo4ka.github.io/lazy_load/index.html

C SetTimeout:
https://kepo4ka.github.io/lazy_load/index1.html

Не особо важно когда гифка начнёт отображаться для пользователя, главное, чтобы она не тормозила саму страницу
  • Вопрос задан
  • 416 просмотров
Подписаться 1 Простой 2 комментария
Пригласить эксперта
Ответы на вопрос 2
zkrvndm
@zkrvndm
Архитектор решений
Попробуй делать запуск после того, как страница готова к работе, а не сразу сходу. Пример:
document.addEventListener('DOMContentLoaded', function() {
    var lazyLoadInstance = new LazyLoad({});
});
Ответ написан
Zraza
@Zraza
Помог ответ? Отметь решением!
Что если выкинуть эту библиотеку и самому заменять картинку?
1) Размещаем на странице div с class=lazy и data-src
2) По setTimeout кладем в него img и меняем класс
3) Красиво все это стилизуем css
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы