ホームページ >ウェブフロントエンド >jsチュートリアル >JavaScriptによる遅延読み込み機能の実装
JavaScript に基づいた遅延読み込み機能の実装
遅延読み込みは、ページの読み込み速度とユーザー エクスペリエンスを向上させるために設計された、一般的に使用されるフロントエンド最適化テクノロジです。遅延読み込みにより、ページ内の特定のリソース (画像、ビデオ、テキストなど) は、ユーザーがそれらを必要とするか、閲覧しようとするまで遅延させることができるため、最初の読み込み時のネットワーク リクエストとページの読み込みが軽減されます。
この記事では、JavaScript を使用して遅延読み込み機能を実装する方法とコード例を紹介します。
遅延読み込みの原則は、ページ スクロール イベントまたはその他のインタラクティブな動作をリッスンすることです。ページが特定の位置にスクロールするとき、またはユーザーは、リソースをその場所にロードしてから、リソースをロードする操作を行います。
2.1 まず、遅延読み込みが必要な要素に特定の識別子を追加する必要があります。クラス属性やデータ属性などにすることができます。たとえば、遅延ロードする必要があるイメージに「lazy」というクラス属性を追加します。
src 属性はプレースホルダー画像です。 data-src 属性は実際のピクチャ アドレスです。
2.2 ページが読み込まれた後、JavaScript を使用して遅延読み込み識別子を持つすべての要素を取得し、スクロール イベントをバインドします。
<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) ); }
});
以上がJavaScriptによる遅延読み込み機能の実装の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。