"Si un ouvrier veut bien faire son travail, il doit d'abord affûter ses outils." - Confucius, "Les Entretiens de Confucius. Lu Linggong"
Page de garde > La programmation > Améliorer les performances du site Web avec Intersection Observer

Améliorer les performances du site Web avec Intersection Observer

Publié le 2024-07-30
Parcourir:344

Enhancing Website Performance with Intersection Observer

Introduction

À la recherche d'une expérience Web plus rapide et plus efficace, les développeurs recherchent continuellement de nouvelles façons d'optimiser les performances. L'API Intersection Observer est un outil puissant dans l'arsenal du développeur Web. Cette API vous permet d'observer les changements dans la visibilité des éléments cibles, permettant des stratégies avancées telles que le chargement paresseux et le chargement de contenu différé. Dans ce blog, nous explorerons comment utiliser l'API Intersection Observer pour améliorer les performances de votre site Web.

Qu’est-ce qu’Intersection Observer ?

L'API Intersection Observer fournit un moyen d'observer de manière asynchrone les changements dans l'intersection d'un élément cible avec un élément ancêtre ou avec la fenêtre d'affichage du document de niveau supérieur. Cela peut être particulièrement utile pour le chargement paresseux d'images ou d'autres contenus lorsque les utilisateurs font défiler la page.

Cas d'utilisation clés pour l'amélioration des performances

  1. Chargement paresseux des images et des Iframes : chargez les images et les Iframes uniquement lorsqu'elles sont sur le point d'entrer dans la fenêtre d'affichage, réduisant ainsi le temps de chargement initial.
  2. Chargement différé du contenu hors écran : différez le chargement de contenu tel que des publicités, des vidéos ou des scripts lourds jusqu'à ce qu'ils soient visibles.
  3. Défilement infini : chargez plus de contenu à mesure que l'utilisateur fait défiler la page.
  4. Suivi des analyses : suivez le moment où les éléments sont visibles pour l'analyse de l'engagement des utilisateurs.

Utilisation de base

Plongeons dans une implémentation de base de l'API Intersection Observer.

  1. Créer un observateur d'intersection

Tout d'abord, créez une instance de 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. Éléments cibles pour l'observation

Sélectionnez les éléments que vous souhaitez observer et commencez à les observer :

document.querySelectorAll('img[data-src]').forEach(img => {
  observer.observe(img);
});
  1. Structure HTML pour le chargement différé

Assurez-vous que votre structure HTML prend en charge le chargement différé à l'aide d'attributs de données :

Lazy Loaded Image

Configurations avancées

Pour plus de contrôle, vous pouvez ajuster les options de marge racine et de seuil :

  1. Marge racine : préchargez légèrement le contenu avant qu'il n'entre dans la fenêtre.
rootMargin: '100px' // preload 100px before entering viewport
  1. Threshold : déterminez la quantité d'élément qui doit être visible avant de déclencher le rappel.
threshold: [0.25, 0.5, 0.75, 1] // trigger at 25%, 50%, 75%, and 100% visibility

Exemple pratique : chargement paresseux d'images

Voici un exemple complet de chargement paresseux d'images :

  1. Code 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. Structure HTML
Lazy Loaded Image

Avantages

  1. Temps de chargement initial réduit : en chargeant uniquement les images et le contenu qui se trouvent dans ou à proximité de la fenêtre d'affichage, le temps de chargement initial est réduit.
  2. Performances de défilement améliorées : différer le chargement du contenu hors écran peut conduire à un défilement plus fluide.
  3. Meilleure expérience utilisateur : les utilisateurs téléchargent uniquement le contenu qu'ils sont sur le point de consulter, ce qui conduit à une expérience plus réactive.

Conclusion

En implémentant l'API Intersection Observer, vous pouvez améliorer considérablement les performances et l'expérience utilisateur de votre site Web. Que vous chargez des images paresseusement, différiez le chargement de scripts lourds ou implémentiez un défilement infini, cette API fournit un moyen robuste et efficace de gérer la visibilité du contenu. Commencez à utiliser Intersection Observer dès aujourd’hui et constatez la différence dans les performances de votre site Web !

Déclaration de sortie Cet article est reproduit sur : https://dev.to/koolkamalkishor/enhancing-website-performance-with-intersection-observer-f89?1 En cas d'infraction, veuillez contacter [email protected] pour le supprimer.
Dernier tutoriel Plus>

Clause de non-responsabilité: Toutes les ressources fournies proviennent en partie d'Internet. En cas de violation de vos droits d'auteur ou d'autres droits et intérêts, veuillez expliquer les raisons détaillées et fournir une preuve du droit d'auteur ou des droits et intérêts, puis l'envoyer à l'adresse e-mail : [email protected]. Nous nous en occuperons pour vous dans les plus brefs délais.

Copyright© 2022 湘ICP备2022001581号-3