検索
ホームページウェブフロントエンドjsチュートリアル9 つの JavaScript 画像遅延読み込みライブラリを共有しましょう

javascriptこのコラムでは、いくつかの画像遅延読み込みライブラリを紹介します。

9 つの JavaScript 画像遅延読み込みライブラリを共有しましょう

関連する無料の学習に関する推奨事項: javascript (ビデオ)

画像の遅延読み込みが必要な理由

Web アプリケーションではパフォーマンスが非常に重要です。世界で最も美しく魅力的な Web サイトを作成することはできますが、それがブラウザーにすぐに読み込まれない場合、人々は Web サイトを無視する傾向があります。 Web サイトのパフォーマンスを本当に向上させるのは、非常に難しい場合があります。これは、高価な JavaScript、遅い Web フォント表示、かさばる画像リソースなど、Web 開発には多くのボトルネックがあるためです。

この記事では主に、Web サイトにおける画像リソースの影響に焦点を当てます。 Jecelyn の調査によると、Web ページは画像を読み込むだけで平均 5MB のデータを消費します。一部の国ではモバイルデータ通信料が非常に高価であるため、これはユーザーにとって大きな負担となる可能性があります。ユーザーは、特に接続が遅い場合、サイトの読み込みに時間がかかりすぎるという問題も経験します。これらはウェブサイトに悪影響を与える可能性があります。

Jakob Nielson の調査によると、留意すべき重要な統計がいくつかあります:

  • Web サイトの読み込み時間が 100 ミリ秒未満である場合は、瞬間的なものとみなされます。
  • 100 ~ 300 ミリ秒の遅延が認識されます。
  • 消費者の 47% は、Web ページが 2 秒以内に読み込まれることを期待しています。
  • 消費者の 40% は、読み込みに 3 秒以内で Web サイトを放棄します。

遅延読み込みとは何ですか?

パフォーマンスや品質に影響を与えることなく、Web サイトの画像リソースに効率的なサービスを提供できる戦略がいくつかあり、遅延読み込みもその 1 つです。遅延読み込みとは、必要なものだけを読み込み、残りは必要になるまで延期することを意味します。この戦略は、画像、ビデオ、テキスト、その他の種類のデータに適用できます。ただし、ほとんどの場合、画像アセットなどのかさばるコンテンツに適しています。

Web サイトに画像の遅延読み込みを実装するには、いくつかの方法があります。たとえば、Intersection Observer API を使用するか、イベント ハンドラーを使用して、要素がビュー内にあるかどうかを判断できます。強力な JavaScript ライブラリもいくつかあり、ニーズと互換性に応じて次の画像遅延読み込みライブラリ メソッドを使用できます。見てみましょう!

Lazy Sizes

Lazy Sizes は現在最高の遅延読み込みライブラリの 1 つで、Github 上に 14.1K 以上のコレクションがあり、圧縮後のサイズはわずか 3.4kB です。また、約 98.5% のブラウザ ユーザーをサポートしており、そのドキュメントは理解しやすい方法で書かれています。

機能

  • レスポンシブ画像のサポートが含まれています。
  • ユーザー エージェントの助けを借りて検索エンジンを検出し、すべての画像を即座にロードすることで SEO を最適化します。
  • 効率的で実用的なコードに基づいています。
  • ネットワーク接続がアイドル状態のときにリソースをプリロードします。
  • LQIP のサポートが含まれます。
  • IntersectionObserverMutationObservergetElementsByClassName などをサポートします。
  • 機能を拡張するためのプラグインの使用をサポートします。
  • 応答画像サイズの自動計算をサポートします。

ここで例を確認できます。

Lozad.js

Lozad.js は、画像、iframe、広告、ビデオ、その他の要素の遅延読み込みをサポートしています。 Github には約 6.4K のコレクションがあり、コミュニティで非常に人気があります。研究チームによると、このライブラリは、Tesla、Domino、Xiaomi、BBC など、いくつかのブランドの Web アプリケーションで使用されています。これは非常に小さく、gzip 圧縮されたのはわずか 1.1kB です。 IntersectionObserver API と MutationObserver API を使用するため、ブラウザ ユーザーの約 92% をサポートします。

機能

  • 依存関係はありません。
  • 動的に追加された要素の遅延読み込みをサポートします。
  • 完全に JavaScript を使用します。
  • LQIP と応答イメージのサポートが含まれます。
  • getBoundingClientRect() を使用するライブラリよりも効率的です。
  • ポリフィルはサポートされていないブラウザでも使用できます。

ここで例を確認できます。

Tuupola の Lazyload

Tuupola の Lazyload も、Github 上で人気のある画像遅延読み込みライブラリであり、約 8.4K のコレクションがあります。 IntersectionObserver API を使用しており、シンプルで使いやすいです。圧縮後のサイズはわずか 956 バイトであり、他のライブラリよりも小さくなります。これは、他のライブラリが互換性とパフォーマンスを向上させるために他の組み合わせを使用するのに対し、IntersectionObserver API のみを使用するという事実に起因すると考えられます。さらに、これのおかげで、現在ブラウザ ユーザーの 92% がサポートしています。

機能

  • 利便性を高めるために、jQuery ラッパーが含まれています。
  • LQIP と応答イメージのサポートが含まれます。
  • コア IntersectionObserver API は、追加のパラメーターを渡すことで構成できます。

Vanilla Lazyload by Andrea Verlicchi

Vanilla Lazyload は、画像、ビデオ、および iframe を遅延読み込みするためのもう 1 つの純粋な JavaScript ライブラリです。 Github では非常に人気があり、1500 近くのリポジトリとパッケージが利用可能です。 NPM では年間 190 万件以上のダウンロードがあります。圧縮されたサイズはわずか 2.7kB です。他のライブラリと同様に、このライブラリは、ブラウザ ユーザーの 92% にサポートされている IntersectionObserver API を使用します。

  • ライブラリは検索エンジンの画像をカバーしていないため、SEO に適しています。
  • 接続が中断された後、ライブラリが自動的に画像を再ロードするため、不安定なネットワーク接続をサポートします。
  • 画像がビューポートから出た場合は、画像の読み込みをキャンセルします。
  • LQIP と応答イメージのサポートが含まれます。
  • 完全に JavaScript を使用します。

#ここで例を確認できます。

Yall.js

Yall.js も IntersectionObserver API のみを使用して画像、ビデオ、iframe などを遅延読み込みする別の JavaScript ライブラリです。 CSSの背景画像。このライブラリには約 1.1K のコレクションがあり、91 人のユーザーがプロジェクト ライブラリで使用しています。このライブラリは 1kB まで圧縮できます。以前のライブラリで見たように、Yall.js は IntersectionObserver API を使用しているため、ブラウザ ユーザーの 92% もサポートしています。ブラウザが IntersectionObserver API をサポートしていない場合、バックアップは存在しないことに注意することが重要です。その場合は、polyfill を使用する必要があります。

機能

  • MutationObserver API を使用して、動的に読み込まれる要素の検出をサポートします。
  • requestIdleCallback メソッドを使用して、ブラウザのアイドル時間を最適化します。
  • src 属性を介した LQIP の直接実装をサポートします。
  • CSS 背景の遅延読み込みをサポートします。

Layzr.js

Layzr.js は、JavaScript に基づいた軽量の画像遅延読み込みライブラリです。主に Element.classList を使用し、いくつかの ES5 配列メソッドと requestAnimationFrame メソッドを使用します。これらの API のおかげで、ブラウザ ユーザーの 97% 以上がこのライブラリをサポートしています。 Layzr.js は Github 上に 5.6K を超えるコレクションがあり、非常に人気があり、圧縮後のサイズはわずか 1kB です。

  • 依存関係はありません。
  • ブラウザの互換性と可用性に基づいて画像ソースをインテリジェントに選択します。
  • 動的に追加された要素をサポートします。
  • 明確かつ簡潔なドキュメントと例。
  • threshold プロパティを持つビューポート調整画像は遅延読み込みされ、必要に応じて画像を先にまたは後で読み込むことができます。
ここで例を確認できます。

Blazy.js

Blazy.js は、画像、ビデオ、および

iframe を処理できるもう 1 つの軽量 JavaScript 遅延読み込みライブラリです。これは Github で非常に人気があり、2.6K のコレクションがあり、現在 860 以上のオープン ソース プロジェクト ライブラリで使用されています。圧縮されたサイズはわずか 1.9kB です。

Element.getBoundingClientRect() メソッドを使用します。このメソッドは、IntersectionObserver API を実装する他のライブラリほどパフォーマンスが高くない可能性があります。しかし、このアプローチのおかげで、このライブラリは 98% 以上のブラウザ ユーザーにサポートされています。 Element.closest() も使用します。この API に対するブラウザのサポート率は 94% をわずかに超えています。この場合、ライブラリにはサポートされていないブラウザ用の polyfill が含まれているため、不足している 6% について心配する必要はありません。

特徴

    毎月何百万ものアクセスがある実際の Web サイトで使用されます。
  • 依存関係はありません。
  • レスポンシブ画像をサポートします。
  • Layzr.js と同様に、オフセットを使用して要素を読み込むことができます。
  • サンプルコードを含む明確なドキュメント。
  • AMD、CommonJS、グローバルなどのモジュール形式をサポートします。
  • 網膜画像を提供するのは非常に簡単です。
ここで例を確認できます。

Responsively Lazy

Responsively Lazy は、画像の遅延読み込みライブラリでもあります。内容は簡潔で、圧縮されたのはわずか 1.1kB です。構文の実装が優れているため、多くのライブラリより際立っています。上で説明したライブラリのほとんどでは、JavaScript を無効にしたり、src 属性を無視したりするブラウザに対して noscript タグを使用する必要があります。ただし、Lazy では従来の src 属性を使用し、サポートされているブラウザの srcset および src 属性を追加できます。これにより、このライブラリは検索エンジン最適化 (SEO) に適したものになります。このライブラリは Element.getBoundingClientRect() も使用するため、このライブラリでも強制レイアウト リフローが発生します。

さらに、このライブラリには Github 上に約 1.1K のコレクションがあり、ブラウザ ユーザーのほぼ 95% がこのライブラリをサポートしています。

機能

  • レスポンシブ画像をサポートします。
  • ウェブページをサポートします。
  • 検索エンジン最適化 (SEO) に優しい。
  • 利用できるカスタマイズはあまり多くありません。

ここで例を確認できます。

LazyestLoad.js

LazyestLoad.js は、このリストの中で最も小さいライブラリの 1 つです。わずか 700 バイトであり、圧縮するとわずか 639 バイトになります。このライブラリには、lazyloadlazyestload という 2 つのバージョンがあります。これらはすべて異なる用途を持ち、lazyload バージョンは通常のライブラリと同様に機能し、画像はビューポートに入ろうとするときにロードされますが、lazyestload バージョンはユーザーが停止したときにのみロードされます。スクロールと画像 画像は、ビューポート内または 100 ピクセル以内にある場合にのみロードされます。これにより、ユーザーが画像を見るために一時停止せずにスクロールするだけの場合、ネットワーク負荷が軽減されます。

これは主に Element.getBoundingClientRect() メソッドを使用しますが、これは他の実装に比べて効率的ではなく、レイアウトの再配置を引き起こすことが知られています。

ビデオや iframe を処理できる他のライブラリとは異なり、このライブラリは画像のみを処理します。 Github には 15,000 を超えるコレクションもあります。

特徴

  • シンプルでわかりやすい。
  • 他のライブラリのような広範なカスタマイズはできません。
  • レスポンシブ画像をサポートします。
  • ドキュメントの詳細が十分ではありません。

lazyload の例と、lazyestload の例を表示できます。


最新のブラウザのほとんどはネイティブの遅延読み込みをサポートしているため、ネイティブ実装を使用することをお勧めします。また、ネイティブの遅延読み込みにより、ブラウザーで JavaScript が無効になっている場合でも、画像が遅延して読み込まれます。 img タグの loading="lazy" 属性を使用するだけで、すべての手間が省けます。

最新のブラウザのほとんどはネイティブの遅延読み込みをサポートしており、Safari も間もなくこれをサポートします。現在、ブラウザのサポート率は 74% ですが、ブラウザがネイティブ実装をサポートしていない場合は、polyfill または上記の遅延読み込みライブラリのいずれかを使用できます。

安全のため、ライブラリの 1 つを実装するには動的インポートを使用する必要がある場合があります。

対象ユーザーを知る

上記のすべてのライブラリを注意深く分析すると、パフォーマンス、サイズ、ブラウザ互換性 (ユーザー カバレッジ) の 3 つの側面で激しく競合していることがわかります。これらは通常、他のレベルを向上させるために少なくとも 1 つを犠牲にする必要があります。

たとえば、IntersectionObserver API を実装するライブラリを使用すると、高パフォーマンスのライブラリが得られますが、そのユーザー対象範囲は狭くなります。パッチ適用が必要な場合は、polyfills などのフォールバック オプションが必要になります。これにより、ライブラリ全体のサイズが増加します。

別の例では、遅延読み込みライブラリが getBoundingClientRect() メソッドを使用する場合、IntersectionObserver API ほどのパフォーマンスは得られません。強制的なレイアウトのリフローの問題。パフォーマンスは犠牲になりますが、ユーザーカバレッジは前者よりも高くなります。これを明確にできれば幸いです。

互換性の問題を最小限に抑え、パフォーマンスを最大化するにはどうすればよいでしょうか?

これらの領域は、対象ユーザーとブラウザの使用状況を理解することで改善できます。対象ユーザーとそのユーザーが使用するブラウザーがわかっている場合は、遅延読み込みの実装がそれらのブラウザーのバージョンにより適していることを確認できます。これにより、どのブラウザを考慮する必要があるかがすでにわかっているため、サポートされていないブラウザに対して polyfill を含める必要性が減ります。外れ値 (サポートされていないブラウザー) がある場合、画像はラグや遅延なく直接読み込むことができます。視聴者をよく理解していれば、これらの異常値の数は無視できる程度になります。

このアプローチは、パフォーマンスが高く、ブラウザー例外を無視することでライブラリ サイズを最小限に抑え、ターゲット ユーザーのブラウザー バージョンをサポートする実装ライブラリを使用するのに役立ちます。


この記事では、JavaScript の遅延読み込みライブラリと、効率とユーザー エクスペリエンスを向上させるためのいくつかの方法について簡単に説明します。以下のコメント欄でご意見をお聞かせください。

読んでいただきありがとうございます。コーディングを楽しんでください! !

以上が9 つの JavaScript 画像遅延読み込みライブラリを共有しましょうの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明
この記事はjuejinで複製されています。侵害がある場合は、admin@php.cn までご連絡ください。
Python vs. JavaScript:学習曲線と使いやすさPython vs. JavaScript:学習曲線と使いやすさApr 16, 2025 am 12:12 AM

Pythonは、スムーズな学習曲線と簡潔な構文を備えた初心者により適しています。 JavaScriptは、急な学習曲線と柔軟な構文を備えたフロントエンド開発に適しています。 1。Python構文は直感的で、データサイエンスやバックエンド開発に適しています。 2。JavaScriptは柔軟で、フロントエンドおよびサーバー側のプログラミングで広く使用されています。

Python vs. JavaScript:コミュニティ、ライブラリ、リソースPython vs. JavaScript:コミュニティ、ライブラリ、リソースApr 15, 2025 am 12:16 AM

PythonとJavaScriptには、コミュニティ、ライブラリ、リソースの観点から、独自の利点と短所があります。 1)Pythonコミュニティはフレンドリーで初心者に適していますが、フロントエンドの開発リソースはJavaScriptほど豊富ではありません。 2)Pythonはデータサイエンスおよび機械学習ライブラリで強力ですが、JavaScriptはフロントエンド開発ライブラリとフレームワークで優れています。 3)どちらも豊富な学習リソースを持っていますが、Pythonは公式文書から始めるのに適していますが、JavaScriptはMDNWebDocsにより優れています。選択は、プロジェクトのニーズと個人的な関心に基づいている必要があります。

C/CからJavaScriptへ:すべてがどのように機能するかC/CからJavaScriptへ:すべてがどのように機能するかApr 14, 2025 am 12:05 AM

C/CからJavaScriptへのシフトには、動的なタイピング、ゴミ収集、非同期プログラミングへの適応が必要です。 1)C/Cは、手動メモリ管理を必要とする静的に型付けられた言語であり、JavaScriptは動的に型付けされ、ごみ収集が自動的に処理されます。 2)C/Cはマシンコードにコンパイルする必要がありますが、JavaScriptは解釈言語です。 3)JavaScriptは、閉鎖、プロトタイプチェーン、約束などの概念を導入します。これにより、柔軟性と非同期プログラミング機能が向上します。

JavaScriptエンジン:実装の比較JavaScriptエンジン:実装の比較Apr 13, 2025 am 12:05 AM

さまざまなJavaScriptエンジンは、各エンジンの実装原則と最適化戦略が異なるため、JavaScriptコードを解析および実行するときに異なる効果をもたらします。 1。語彙分析:ソースコードを語彙ユニットに変換します。 2。文法分析:抽象的な構文ツリーを生成します。 3。最適化とコンパイル:JITコンパイラを介してマシンコードを生成します。 4。実行:マシンコードを実行します。 V8エンジンはインスタントコンピレーションと非表示クラスを通じて最適化され、Spidermonkeyはタイプ推論システムを使用して、同じコードで異なるパフォーマンスパフォーマンスをもたらします。

ブラウザを超えて:現実世界のJavaScriptブラウザを超えて:現実世界のJavaScriptApr 12, 2025 am 12:06 AM

現実世界におけるJavaScriptのアプリケーションには、サーバー側のプログラミング、モバイルアプリケーション開発、モノのインターネット制御が含まれます。 2。モバイルアプリケーションの開発は、ReactNativeを通じて実行され、クロスプラットフォームの展開をサポートします。 3.ハードウェアの相互作用に適したJohnny-Fiveライブラリを介したIoTデバイス制御に使用されます。

next.jsを使用してマルチテナントSaaSアプリケーションを構築する(バックエンド統合)next.jsを使用してマルチテナントSaaSアプリケーションを構築する(バックエンド統合)Apr 11, 2025 am 08:23 AM

私はあなたの日常的な技術ツールを使用して機能的なマルチテナントSaaSアプリケーション(EDTECHアプリ)を作成しましたが、あなたは同じことをすることができます。 まず、マルチテナントSaaSアプリケーションとは何ですか? マルチテナントSaaSアプリケーションを使用すると、Singの複数の顧客にサービスを提供できます

next.jsを使用してマルチテナントSaaSアプリケーションを構築する方法(フロントエンド統合)next.jsを使用してマルチテナントSaaSアプリケーションを構築する方法(フロントエンド統合)Apr 11, 2025 am 08:22 AM

この記事では、許可によって保護されたバックエンドとのフロントエンド統合を示し、next.jsを使用して機能的なedtech SaaSアプリケーションを構築します。 FrontEndはユーザーのアクセス許可を取得してUIの可視性を制御し、APIリクエストがロールベースに付着することを保証します

JavaScript:Web言語の汎用性の調査JavaScript:Web言語の汎用性の調査Apr 11, 2025 am 12:01 AM

JavaScriptは、現代のWeb開発のコア言語であり、その多様性と柔軟性に広く使用されています。 1)フロントエンド開発:DOM操作と最新のフレームワーク(React、Vue.JS、Angularなど)を通じて、動的なWebページとシングルページアプリケーションを構築します。 2)サーバー側の開発:node.jsは、非ブロッキングI/Oモデルを使用して、高い並行性とリアルタイムアプリケーションを処理します。 3)モバイルおよびデスクトップアプリケーション開発:クロスプラットフォーム開発は、反応および電子を通じて実現され、開発効率を向上させます。

See all articles

ホットAIツール

Undresser.AI Undress

Undresser.AI Undress

リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover

AI Clothes Remover

写真から衣服を削除するオンライン AI ツール。

Undress AI Tool

Undress AI Tool

脱衣画像を無料で

Clothoff.io

Clothoff.io

AI衣類リムーバー

AI Hentai Generator

AI Hentai Generator

AIヘンタイを無料で生成します。

ホットツール

VSCode Windows 64 ビットのダウンロード

VSCode Windows 64 ビットのダウンロード

Microsoft によって発売された無料で強力な IDE エディター

DVWA

DVWA

Damn Vulnerable Web App (DVWA) は、非常に脆弱な PHP/MySQL Web アプリケーションです。その主な目的は、セキュリティ専門家が法的環境でスキルとツールをテストするのに役立ち、Web 開発者が Web アプリケーションを保護するプロセスをより深く理解できるようにし、教師/生徒が教室環境で Web アプリケーションを教え/学習できるようにすることです。安全。 DVWA の目標は、シンプルでわかりやすいインターフェイスを通じて、さまざまな難易度で最も一般的な Web 脆弱性のいくつかを実践することです。このソフトウェアは、

SublimeText3 Linux 新バージョン

SublimeText3 Linux 新バージョン

SublimeText3 Linux 最新バージョン

ドリームウィーバー CS6

ドリームウィーバー CS6

ビジュアル Web 開発ツール

MantisBT

MantisBT

Mantis は、製品の欠陥追跡を支援するために設計された、導入が簡単な Web ベースの欠陥追跡ツールです。 PHP、MySQL、Web サーバーが必要です。デモおよびホスティング サービスをチェックしてください。