より高速で効率的な Web エクスペリエンスを追求する中で、開発者はパフォーマンスを最適化する新しい方法を絶えず模索しています。 Web 開発者の強力なツールの 1 つは、Intersection Observer API です。この API を使用すると、ターゲット要素の可視性の変化を観察できるため、遅延読み込みや遅延コンテンツ読み込みなどの高度な戦略が可能になります。このブログでは、Intersection Observer API を使用して Web サイトのパフォーマンスを向上させる方法を検討します。
Intersection Observer API は、ターゲット要素と祖先要素またはトップレベル ドキュメントのビューポートとの交差における変更を非同期的に観察する方法を提供します。これは、ユーザーがページを下にスクロールするときに画像やその他のコンテンツを遅延読み込みする場合に特に便利です。
Intersection Observer API の基本的な実装を見てみましょう。
まず、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 });
観察したい元素を選択し、観察を開始します:
document.querySelectorAll('img[data-src]').forEach(img => { observer.observe(img); });
データ属性を使用して、HTML 構造が遅延読み込みをサポートしていることを確認します。
<img data-src="path/to/image.jpg" alt="Lazy Loaded Image">
さらに制御するには、ルート マージンとしきい値のオプションを調整できます。
rootMargin: '100px' // preload 100px before entering viewport
threshold: [0.25, 0.5, 0.75, 1] // trigger at 25%, 50%, 75%, and 100% visibility
画像を遅延読み込みする完全な例を次に示します:
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); }); });
<img class="lazy" data-src="image.jpg" alt="Lazy Loaded Image">
Intersection Observer API を実装すると、Web サイトのパフォーマンスとユーザー エクスペリエンスを大幅に向上させることができます。画像の遅延読み込み、重いスクリプトの読み込みの遅延、または無限スクロールの実装のいずれを行う場合でも、この API はコンテンツの可視性を管理するための堅牢かつ効率的な方法を提供します。今すぐ Intersection Observer を使い始めて、Web サイトのパフォーマンスの違いを確認してください!
以上がIntersection Observer による Web サイトのパフォーマンスの向上の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。