У меня есть angularjs веб-приложение со списком элементов. Каждый из них представлен каруселью со сликом. js. Чтобы улучшить производительность при загрузке, я хочу использовать стратегию двойной отложенной загрузки на своем веб-сайте:
- Для скользких снимков в карусели я использую lazyload: «ondemand». Здесь все работает. Первая картинка загружается, остальные загружаются только по запросу (при нажатии следующей кнопки).
- Помимо первой, я хочу использовать lazysizes. js для загрузки только видимых фотографий. Я использую aFarkas lazysizes со многими другими фотографиями на сайте и отлично работает. Но я не могу заставить его работать с пятном. js Карусель.
Пожалуйста, найдите пример: HTML:
<div class="slick-container">
<div class="item" ng-repeat="photo in item.photos" slick>
<img data-lazy="//{{CDN_URL}}/img/items/{{item.id}}/m/{{photo.name}}.{{photo.mime}}" class="lazyload"/>
</div>
</div>
JS: Слик инициализация
$(".slick-container").not('.slick-initialized').slick({
slidesToShow: 1,
slidesToScroll: 1,
focusOnSelect: true,
infinite: false,
dots: true,
lazyLoad: 'ondemand',
});
Неважно, где я размещаю класс lazyload, в img или в div контейнера, он загружает первое изображение всех элементов.