Webページ画像の怠zyな読み込みを効率的に実装する:応答性とパフォーマンスの両方を考慮に入れる
Webページのパフォーマンスを最適化するために、画像の怠zyなロードを検討したことはありますか?怠zyなロードテクノロジーは、初期ページの負荷重量を効果的に削減し、Webページの読み込み速度を改善できます。この記事では、応答性の高い画像と最高のユーザーエクスペリエンスを考慮しながら、効率的な画像の怠zyなロード方法を調べます。
Lazy Loadingはブラウザのネイティブ機能ではなく、現在JavaScriptの助けを借りて実装する必要があります。 Chrome 75以降のバージョンは、画像とIFRAMEの怠zyなロードをネイティブにサポートすることを計画していますが、他のブラウザと互換性があるためにJavaScriptソリューションを使用する必要があります。多くの静的なWebサイトジェネレーター、ライブラリ、およびフレームワークは、怠zyな読み込み機能を箱から出して提供しますが、この機能を実装するためだけにフルライブラリまたはフレームワークを導入すると、パフォーマンスがオーバーヘッドを引き起こす可能性があります。したがって、私たちは自分で怠zyなロードを実装することを選択しました。
コアメカニズム:
ほとんどの怠zyなロード方法は、次のパターンに従います。
HTMLタグ:使用
<img src="/static/imghwm/default1.png" data-src="https://img.php.cn/upload/article/000/000/000/174502705448368.jpg?x-oss-process=image/resize,p_40" class="lazy" alt="自分の怠zyなロードを転がすためのヒント">
読み込み時間:
Intersection Observer
APIを使用して、画像がビューポートに入るかどうかを検出します。Intersection Observer
効率的な要素の可視性検出を提供し、頻繁なscroll
を回避し、イベントリスニングのresize
。
//交差点オブザーバーを作成します const observer = new IntersectionObserver(lazyload、{ rootmargin: '100px'、 しきい値:1.0 }); function lazyload(elements){ element.foreach(image => { if(image.interectionRatio> 0){ image.src = image.dataset.src; Observer.Unobserve(画像); } }); } //すべてのIMG要素を「怠zy」クラスconst lazyimages = document.queryselectorall( 'img.lazy'); lazyimages.foreach(img => { Observer.observe(IMG); });
改善と最適化:
上記の基本的な方法にはいくつかの欠点があります。
- JavaScriptの依存関係: JavaScriptがロードされて実行されるまで、画像を表示できません。
- 視覚的な鼓動:写真が読み込まれる前にページは空白であるため、視覚的な不満を引き起こす可能性があります。
上記の問題に応じて、次の改善を行いました。
-
ネイティブのレイジーロード検出:機能検出を使用して、ブラウザがネイティブ
loading="lazy"
属性をサポートするかどうかを判断します。サポートされている場合は、JavaScript介入なしで直接使用してください。
if(htmlimageelement.prototypeの「loading」){ document.QuerySelectorall( 'img.lazy')。 } それ以外 { //交差点オブザーバーを使用して、怠zyなロードを実装します}
- プレースホルダーマップとCSS遷移:小型のプレースホルダーマップを初期状態として使用し、CSSを使用してスケーリングおよびぼやけて、画像をロードしてスムーズな遷移を実現した後にぼやけ効果を削除します。
<picture> <img src="/static/imghwm/default1.png" data-src="https://img.php.cn/upload/article/000/000/000/174502705554652.jpg?x-oss-process=image/resize,p_40" class="lazy" alt="自分の怠zyなロードを転がすためのヒント"> </picture>
Picture {width:100%;オーバーフロー:隠し; } Picture IMG {width:100%;遷移:0.5秒フィルター。 } picture.lazy img {filter:blur(20px); }
-
レスポンシブ画像:使用
<picture></picture>
要素と<source></source>
要素は、異なるビューポートサイズに応じて異なるサイズの写真をロードするレスポンシブ写真を実装します。
補助ツール:
開発プロセスを簡素化するために、次の補助ツールを使用できます。
HTMLジェネレーター:生成を支援するカスタム機能またはテンプレートエンジン
<picture></picture>
要素のHTMLコード。画像バッチ処理:
gulp-image-resize
などのツールを使用してさまざまなサイズの写真を生成するか、クラウドサービス(NetlifyやCloudinaryなど)を使用して写真をオンデマンドで変換します。
要約:
この記事では、効率的な画像怠zyな読み込み実装方法を紹介します。ネイティブのレイジーロード機能検出、プレースホルダーマップ、CSSトランジション、レスポンシブピクチャ、補助ツールを組み合わせることで、パフォーマンスを確保しながらユーザーエクスペリエンスを改善できます。適切な画像処理方法(ビルドまたはオンデマンド変換)を選択すると、プロジェクトのサイズと要件に依存します。この方法では、Webページの読み込み速度を大幅に改善し、より滑らかな視覚効果を提供できます。
以上が自分の怠zyなロードを転がすためのヒントの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ライブトークやクラス中にインタラクティブなアニメーションを表示しなければならなかった場合、スライドと対話するのが必ずしも簡単ではないことを知っているかもしれません

Astroを使用すると、ビルド中にほとんどのサイトを生成できますが、fuse.jsのようなものを使用して検索機能を処理できるサーバー側のコードが少しあります。このデモでは、ヒューズを使用して、個人の「ブックマーク」セットを検索します。

ドキュメントが保存されている間にGoogleドキュメントに表示されるものと同様に、プロジェクトの1つに通知メッセージを実装したかったのです。言い換えれば、a

サイエンスフィクションの初期の頃から、私たちは私たちに話しかける機械について空想してきました。今日は当たり前です。それでも、作成のための技術

私はその日私たちにワードキャンプにいたので、グーテンバーグがコアにリリースされたときのことを覚えています。数ヶ月が今から経過しているので、ますます私たちのことを想像してください

ほとんどのWebアプリケーションの背後にあるアイデアは、データベースからデータを取得し、可能な限り最良の方法でユーザーに提示することです。そこでデータを扱うとき

&#039;は、理にかなっていると思われることを非常に実行できる状況を少し段階的に実行しますが、CSSのトリックでそれを成し遂げることができます。これで


ホットAIツール

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

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

Undress AI Tool
脱衣画像を無料で

Clothoff.io
AI衣類リムーバー

Video Face Swap
完全無料の AI 顔交換ツールを使用して、あらゆるビデオの顔を簡単に交換できます。

人気の記事

ホットツール

mPDF
mPDF は、UTF-8 でエンコードされた HTML から PDF ファイルを生成できる PHP ライブラリです。オリジナルの作者である Ian Back は、Web サイトから「オンザフライ」で PDF ファイルを出力し、さまざまな言語を処理するために mPDF を作成しました。 HTML2FPDF などのオリジナルのスクリプトよりも遅く、Unicode フォントを使用すると生成されるファイルが大きくなりますが、CSS スタイルなどをサポートし、多くの機能強化が施されています。 RTL (アラビア語とヘブライ語) や CJK (中国語、日本語、韓国語) を含むほぼすべての言語をサポートします。ネストされたブロックレベル要素 (P、DIV など) をサポートします。

SublimeText3 英語版
推奨: Win バージョン、コードプロンプトをサポート!

WebStorm Mac版
便利なJavaScript開発ツール

SublimeText3 Mac版
神レベルのコード編集ソフト(SublimeText3)

SublimeText3 Linux 新バージョン
SublimeText3 Linux 最新バージョン
