„Wenn ein Arbeiter seine Arbeit gut machen will, muss er zuerst seine Werkzeuge schärfen.“ – Konfuzius, „Die Gespräche des Konfuzius. Lu Linggong“
Titelseite > Programmierung > Verbessern Sie die Website-Leistung mit Intersection Observer

Verbessern Sie die Website-Leistung mit Intersection Observer

Veröffentlicht am 30.07.2024
Durchsuche:367

Enhancing Website Performance with Intersection Observer

Einführung

Auf der Suche nach einem schnelleren und effizienteren Web-Erlebnis suchen Entwickler ständig nach neuen Möglichkeiten, die Leistung zu optimieren. Ein leistungsstarkes Tool im Arsenal des Webentwicklers ist die Intersection Observer API. Mit dieser API können Sie Änderungen in der Sichtbarkeit von Zielelementen beobachten und so erweiterte Strategien wie Lazy Loading und verzögertes Laden von Inhalten ermöglichen. In diesem Blog erfahren Sie, wie Sie mit der Intersection Observer API die Leistung Ihrer Website verbessern können.

Was ist Intersection Observer?

Die Intersection Observer API bietet eine Möglichkeit, Änderungen an der Schnittmenge eines Zielelements mit einem Vorgängerelement oder mit dem Ansichtsfenster des Dokuments der obersten Ebene asynchron zu beobachten. Dies kann besonders nützlich sein, um Bilder oder andere Inhalte verzögert zu laden, wenn Benutzer auf der Seite nach unten scrollen.

Wichtige Anwendungsfälle zur Leistungsverbesserung

  1. Verzögertes Laden von Bildern und Iframes: Laden Sie Bilder und Iframes nur, wenn sie kurz vor dem Eintritt in das Ansichtsfenster stehen, wodurch die anfängliche Ladezeit verkürzt wird.
  2. Verzögertes Laden von Off-Screen-Inhalten: Verzögern Sie das Laden von Inhalten wie Anzeigen, Videos oder umfangreichen Skripten, bis sie angezeigt werden.
  3. Unendliches Scrollen: Laden Sie mehr Inhalte, während der Benutzer auf der Seite nach unten scrollt.
  4. Analytics-Tracking: Verfolgen Sie, wann Elemente für die Benutzerinteraktionsanalyse sichtbar werden.

Grundlegende Verwendung

Lassen Sie uns in eine grundlegende Implementierung der Intersection Observer API eintauchen.

  1. Erstellen Sie einen Kreuzungsbeobachter

Erstellen Sie zunächst eine Instanz des 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. Zielelemente für die Beobachtung

Wählen Sie die Elemente aus, die Sie beobachten möchten, und beginnen Sie mit der Beobachtung:

document.querySelectorAll('img[data-src]').forEach(img => {
  observer.observe(img);
});
  1. HTML-Struktur für Lazy Loading

Stellen Sie sicher, dass Ihre HTML-Struktur Lazy Loading unterstützt, indem Sie Datenattribute verwenden:

Lazy Loaded Image

Erweiterte Konfigurationen

Für mehr Kontrolle können Sie die Optionen für den Stammrand und den Schwellenwert anpassen:

  1. Stammrand: Laden Sie den Inhalt etwas vor, bevor er in das Ansichtsfenster gelangt.
rootMargin: '100px' // preload 100px before entering viewport
  1. Schwellenwert: Bestimmen Sie, wie viel des Elements sichtbar sein soll, bevor der Rückruf ausgelöst wird.
threshold: [0.25, 0.5, 0.75, 1] // trigger at 25%, 50%, 75%, and 100% visibility

Praxisbeispiel: Lazy Loading Bilder

Hier ist ein vollständiges Beispiel für das verzögerte Laden von Bildern:

  1. JavaScript-Code
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-Struktur
Lazy Loaded Image

Vorteile

  1. Reduzierte anfängliche Ladezeit: Indem nur die Bilder und Inhalte geladen werden, die sich im oder in der Nähe des Ansichtsfensters befinden, wird die anfängliche Ladezeit verkürzt.
  2. Verbesserte Scrollleistung: Das Verzögern des Ladens von Off-Screen-Inhalten kann zu einem flüssigeren Scrollen führen.
  3. Bessere Benutzererfahrung: Benutzer laden nur Inhalte herunter, die sie gerade ansehen, was zu einer reaktionsschnelleren Erfahrung führt.

Abschluss

Durch die Implementierung der Intersection Observer API können Sie die Leistung und das Benutzererlebnis Ihrer Website erheblich verbessern. Unabhängig davon, ob Sie Bilder langsam laden, das Laden umfangreicher Skripte verzögern oder unendliches Scrollen implementieren, bietet diese API eine robuste und effiziente Möglichkeit, die Sichtbarkeit von Inhalten zu verwalten. Beginnen Sie noch heute mit der Nutzung von Intersection Observer und sehen Sie den Unterschied in der Leistung Ihrer Website!

Freigabeerklärung Dieser Artikel ist abgedruckt unter: https://dev.to/koolkamalkishor/enhancing-website-performance-with-intersection-observer-f89?1 Bei Verstößen wenden Sie sich bitte an [email protected], um ihn zu löschen
Neuestes Tutorial Mehr>

Haftungsausschluss: Alle bereitgestellten Ressourcen stammen teilweise aus dem Internet. Wenn eine Verletzung Ihres Urheberrechts oder anderer Rechte und Interessen vorliegt, erläutern Sie bitte die detaillierten Gründe und legen Sie einen Nachweis des Urheberrechts oder Ihrer Rechte und Interessen vor und senden Sie ihn dann an die E-Mail-Adresse: [email protected] Wir werden die Angelegenheit so schnell wie möglich für Sie erledigen.

Copyright© 2022 湘ICP备2022001581号-3