Вебинары Разобраться в IT Реферальная программа
Программирование Аналитика Дизайн Маркетинг Управление проектами
02 Июн 2023
2 мин
313

Как настроить ленивую загрузку контента на сайте

Узнайте, как настроить ленивую загрузку контента на сайте для ускорения загрузки страниц и снижения нагрузки на сервер.

Ленивая загрузка контента (Lazy Loading) – это техника, при которой контент на веб-странице загружается постепенно, только когда он становится видимым для пользователя. Это позволяет ускорить время загрузки страницы и снизить нагрузку на сервер. В этой статье мы рассмотрим, как настроить ленивую загрузку контента на вашем сайте.

Использование атрибута loading

Самый простой способ включить ленивую загрузку – использовать атрибут loading для тегов <img> и <iframe>. Вот пример:

<img src="image.jpg" loading="lazy" alt="Описание изображения">
<iframe src="video.html" loading="lazy"></iframe>

Атрибут loading может иметь два значения:

  • lazy: элемент загружается только когда пользователь прокручивает страницу до него.
  • eager: элемент загружается сразу же, как только страница начинает загружаться.

😉 Обратите внимание, что атрибут loading поддерживается не всеми браузерами. Проверьте совместимость перед использованием.

Использование JavaScript и Intersection Observer API

Если вы хотите иметь больше контроля над процессом ленивой загрузки или поддерживать старые браузеры, вы можете использовать JavaScript и Intersection Observer API. Вот пример кода:

document.addEventListener("DOMContentLoaded", function() {
  const lazyImages = [].slice.call(document.querySelectorAll("img.lazy"));

  if ("IntersectionObserver" in window) {
    let lazyImageObserver = new IntersectionObserver(function(entries, observer) {
      entries.forEach(function(entry) {
        if (entry.isIntersecting) {
          let lazyImage = entry.target;
          lazyImage.src = lazyImage.dataset.src;
          lazyImage.classList.remove("lazy");
          lazyImageObserver.unobserve(lazyImage);
        }
      });
    });

    lazyImages.forEach(function(lazyImage) {
      lazyImageObserver.observe(lazyImage);
    });
  }
});

В этом коде мы создаем экземпляр IntersectionObserver, который отслеживает, когда изображения с классом lazy становятся видимыми. Затем мы меняем атрибут src изображения на значение атрибута data-src. Таким образом, изображение загружается только когда оно появляется в области видимости пользователя.

Не забудьте изменить HTML-код изображений, добавив класс lazy и атрибут data-src:

<img data-src="image.jpg" class="lazy" alt="Описание изображения">

Полифиллы для поддержки старых браузеров

Если вы используете Intersection Observer API, некоторые старые браузеры могут не поддерживать его. В этом случае вы можете использовать полифилл для обеспечения совместимости.

Подключите полифилл перед вашим основным кодом ленивой загрузки:

<script src="intersection-observer.js"></script>
<script src="lazy-loading.js"></script>

Теперь ваш код будет работать даже в старых браузерах, которые не поддерживают Intersection Observer API.

😉 В заключение, ленивая загрузка контента – это отличный способ оптимизировать ваш сайт, уменьшить нагрузку на сервер и улучшить пользовательский опыт. Вы можете легко включить его с помощью атрибута loading или использовать JavaScript и Intersection Observer API для большего контроля и поддержки старых браузеров. Удачи в веб-разработке!

Опрос для читателей: Какой язык программирования лучше? Узнайте результат после голосования

Добавить комментарий