«Если рабочий хочет хорошо выполнять свою работу, он должен сначала заточить свои инструменты» — Конфуций, «Аналитики Конфуция. Лу Лингун»
титульная страница > программирование > Повышение производительности веб-сайта с помощью Intersection Observer

Повышение производительности веб-сайта с помощью Intersection Observer

Опубликовано 30 июля 2024 г.
Просматривать:475

Enhancing Website Performance with Intersection Observer

Введение

В стремлении к более быстрой и эффективной работе в Интернете разработчики постоянно ищут новые способы оптимизации производительности. Одним из мощных инструментов в арсенале веб-разработчика является Intersection Observer API. Этот API позволяет вам наблюдать за изменениями видимости целевых элементов, используя расширенные стратегии, такие как отложенная загрузка и отложенная загрузка контента. В этом блоге мы рассмотрим, как использовать API Intersection Observer для повышения производительности вашего сайта.

Что такое наблюдатель пересечений?

API Intersection Observer предоставляет способ асинхронного наблюдения за изменениями в пересечении целевого элемента с элементом-предком или с областью просмотра документа верхнего уровня. Это может быть особенно полезно при отложенной загрузке изображений или другого контента, когда пользователи прокручивают страницу вниз.

Ключевые варианты использования для повышения производительности

  1. Отложенная загрузка изображений и iframe: загружайте изображения и iframe только тогда, когда они собираются войти в область просмотра, что сокращает начальное время загрузки.
  2. Отложенная загрузка контента за кадром: отложите загрузку контента, такого как реклама, видео или тяжелые сценарии, пока они не станут видимыми.
  3. Бесконечная прокрутка: загружайте больше контента по мере того, как пользователь прокручивает страницу вниз.
  4. Отслеживание аналитики: отслеживайте, когда элементы попадают в поле зрения для анализа взаимодействия с пользователем.

Основное использование

Давайте углубимся в базовую реализацию API Intersection Observer.

  1. Создание наблюдателя пересечения

Сначала создайте экземпляр IntersectionObserver:

let observer = new IntersectionObserver((entries, observer) => {
  entries.forEach(entry => {
    if (entry.isIntersecting) {
      // Perform actions when the element is visible
      entry.target.src = entry.target.dataset.src;
      observer.unobserve(entry.target); // Stop observing after loading
    }
  });
}, {
  root: null, // relative to document viewport
  rootMargin: '0px', // margin around root
  threshold: 0.1 // visible amount of item shown in relation to root
});
  1. Целевые элементы для наблюдения

Выберите элементы, которые вы хотите наблюдать, и начните наблюдать за ними:

document.querySelectorAll('img[data-src]').forEach(img => {
  observer.observe(img);
});
  1. HTML-структура для отложенной загрузки

Убедитесь, что ваша структура HTML поддерживает отложенную загрузку с помощью атрибутов данных:

Lazy Loaded Image

Расширенные конфигурации

Для большего контроля вы можете настроить параметры корневого поля и порога:

  1. Корневое поле: предварительно загружайте контент перед тем, как он попадет в область просмотра.
rootMargin: '100px' // preload 100px before entering viewport
  1. Порог: определите, какая часть элемента должна быть видна перед запуском обратного вызова.
threshold: [0.25, 0.5, 0.75, 1] // trigger at 25%, 50%, 75%, and 100% visibility

Практический пример: отложенная загрузка изображений

Вот полный пример отложенной загрузки изображений:

  1. Код JavaScript
document.addEventListener("DOMContentLoaded", function() {
  let lazyImages = document.querySelectorAll("img.lazy");

  let imageObserver = new IntersectionObserver((entries, observer) => {
    entries.forEach(entry => {
      if (entry.isIntersecting) {
        let img = entry.target;
        img.src = img.dataset.src;
        img.classList.remove("lazy");
        observer.unobserve(img);
      }
    });
  });

  lazyImages.forEach(image => {
    imageObserver.observe(image);
  });
});
  1. HTML-структура
Lazy Loaded Image

Преимущества

  1. Уменьшение времени начальной загрузки: за счет загрузки только тех изображений и контента, которые находятся в области просмотра или рядом с ней, время начальной загрузки сокращается.
  2. Улучшенная производительность прокрутки: отсрочка загрузки содержимого за кадром может привести к более плавной прокрутке.
  3. Улучшение пользовательского опыта: пользователи загружают только тот контент, который собираются просмотреть, что обеспечивает более быстрое реагирование.

Заключение

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

Заявление о выпуске Эта статья воспроизведена по адресу: https://dev.to/koolkamalkishor/enhancing-website- Performance-with-intersection-observer-f89?1. В случае нарушения авторских прав свяжитесь с [email protected], чтобы удалить ее.
Последний учебник Более>

Изучайте китайский

Отказ от ответственности: Все предоставленные ресурсы частично взяты из Интернета. В случае нарушения ваших авторских прав или других прав и интересов, пожалуйста, объясните подробные причины и предоставьте доказательства авторских прав или прав и интересов, а затем отправьте их по электронной почте: [email protected]. Мы сделаем это за вас как можно скорее.

Copyright© 2022 湘ICP备2022001581号-3