Heim  >  Artikel  >  Web-Frontend  >  Implementierung einer Lazy-Loading-Funktion basierend auf JavaScript

Implementierung einer Lazy-Loading-Funktion basierend auf JavaScript

WBOY
WBOYOriginal
2023-08-08 10:49:431429Durchsuche

Implementierung einer Lazy-Loading-Funktion basierend auf JavaScript

Implementierung der Lazy-Loading-Funktion auf Basis von JavaScript

Lazy Loading ist eine häufig verwendete Front-End-Optimierungstechnologie, die darauf abzielt, die Ladegeschwindigkeit und das Benutzererlebnis der Seite zu verbessern. Durch verzögertes Laden können bestimmte Ressourcen auf der Seite (z. B. Bilder, Videos, Texte usw.) verzögert werden, bis der Benutzer sie benötigt oder im Begriff ist, sie zu durchsuchen, wodurch die Netzwerkanfrage und das Laden der Seite beim ersten Laden reduziert werden.

In diesem Artikel stellen wir die Verwendung von JavaScript zur Implementierung der Lazy-Loading-Funktion vor und stellen Codebeispiele bereit.

  1. Prinzip des verzögerten Ladens

Das Prinzip des verzögerten Ladens besteht darin, Ressourcen zu laden, wenn die Seite zu einer bestimmten Position scrollt oder der Benutzer zu einer Stelle gelangt, an der Ressourcen geladen werden müssen, indem er Seiten-Scroll-Ereignisse oder andere interaktive Verhaltensweisen abhört .

  1. Schritte zum Implementieren von verzögertem Laden

2.1 Zuerst müssen Sie dem Element, das verzögert geladen werden muss, eine bestimmte Kennung hinzufügen. Es kann ein Klassenattribut oder ein Datenattribut usw. sein. Fügen Sie beispielsweise dem Bild, das verzögert geladen werden muss, das Klassenattribut „lazy“ hinzu.

example

Unter diesen ist das src-Attribut das Platzhalterbild und das data-src Das Attribut ist eine echte Bildadresse.

2.2 Nachdem die Seite geladen wurde, verwenden Sie JavaScript, um alle Elemente mit Lazy-Loading-Flags abzurufen und ein Scroll-Ereignis zu binden.

<script></script>

document.addEventListener("DOMContentLoaded", function() {
  var lazyImages = document.querySelectorAll(".lazy");

  // 绑定滚动事件
  window.addEventListener("scroll", lazyLoad);
  window.addEventListener("resize", lazyLoad);
  
  // 加载初始屏幕可见区域内的图片
  lazyLoad();
  
  function lazyLoad() {
    lazyImages.forEach(function(img) {
      if (isInViewport(img)) {
        img.src = img.getAttribute("data-src");
        img.classList.remove("lazy");
      }
    });

    // 删除滚动事件绑定,减少性能消耗
    if (lazyImages.length === 0) {
      window.removeEventListener("scroll", lazyLoad);
      window.removeEventListener("resize", lazyLoad);
    }
  }

  // 检查元素是否在可视区域内
  function isInViewport(element) {
    var rect = element.getBoundingClientRect();
    return (
      rect.bottom >= 0 &&
      rect.right >= 0 &&
      rect.top <= (window.innerHeight || document.documentElement.clientHeight) &&
      rect.left <= (window.innerWidth || document.documentElement.clientWidth)
    );
  }

});

  1. Testen des Lazy-Loading-Effekts

Im obigen Code verwenden wir zwei Ereignis-Listener (Bildlauf und Größenänderung), um das Scrollen der Seite und das Fenster zu überwachen Größenänderungen. Jedes Mal, wenn ein Scrollen oder eine Änderung der Fenstergröße erkannt wird, wird die Funktion lazyLoad aufgerufen.

Die Funktion lazyLoad durchläuft alle verzögert geladenen Bilder und prüft, ob sie sich im sichtbaren Bereich befinden. Wenn ja, weisen Sie src das Attribut data-src zu, dh laden Sie das echte Bild, und entfernen Sie das Klassenattribut lazy. Verwenden Sie die obige Funktion isInViewport, um festzustellen, ob sich das Element im sichtbaren Bereich befindet.

  1. Zusammenfassung

Lazy Loading ist eine sehr praktische Front-End-Technologie, die nicht nur die Leistung von Webseiten, sondern auch das Benutzererlebnis verbessert. Die Implementierung der Lazy-Loading-Funktion über JavaScript kann die Ladezeit von Seiten und Netzwerkanfragen erheblich reduzieren.

Ich hoffe, dass dieser Artikel Ihnen hilft, die Implementierungsmethode des verzögerten Ladens zu verstehen, und ich hoffe, dass Sie entsprechend Ihren Projektanforderungen entsprechende Änderungen und Optimierungen vornehmen können. Ich wünsche Ihnen gute Ergebnisse beim Einsatz der Lazy-Loading-Technologie!

Codebeispiel abgeschlossen.

Das obige ist der detaillierte Inhalt vonImplementierung einer Lazy-Loading-Funktion basierend auf JavaScript. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn