遅延読み込み(レイジー読み込み)とプリロードは、Web 最適化によく使用される手段です。 。 1. 遅延読み込み(レイジーロード)原則: データの読み込みは、データが本当に必要な場合にのみ実行されます。 遅延読み込みを実装するいくつかの方法1. jsを最後に読み込む使用法: 外部 js ファイルをページの下部に配置する目的: ページの読み込みを高速化するために js を最後に導入する説明: 2. defer属性使用方法: <script> タグの defer 属性を定義します。 <!DOCTYPE html> <html> <ヘッド> <script src="test1.js" defer="defer"></script> <script src="test2.js" defer="遅延"></script> </head> <本文> <!-- ここにコンテンツを入力してください --> </本文> </html> 例:
3. 非同期属性使用方法: <script> タグの async 属性を定義します。 <!DOCTYPE html> <html> <ヘッド> <script src="test1.js" 非同期></script> <script src="test2.js" 非同期></script> </head> <本文> <!-- ここにコンテンツを入力してください --> </本文> </html> ブラウザはスクリプトをすぐにダウンロードしますが、他のリソースのダウンロードや他のスクリプトの読み込みの待機など、ページ上の他の操作を妨げることはありません。後続のドキュメント要素の読み込みとレンダリングのプロセスは、非同期プロセスである main.js の読み込みと実行と並行して実行されます。これらは onload イベントの前に完了します。 例:
4. DOMを動的に作成する//これらのコードは </body> タグの前 (HTML ファイルの下部近く) に配置する必要があります。 <script type="text/javascript"> 関数downloadJSAtOnload() { varelement = document.createElement("script"); 要素.src = "defer.js"; document.body.appendChild(要素); } (window.addEventListener) の場合 window.addEventListener("load",downloadJSAtOnload, false); そうでない場合 (window.attachEvent) ウィンドウにイベントを添付します("onload",downloadJSAtOnload); それ以外 window.onload = ダウンロードJSAtOnload; </スクリプト> 5. jQueryのgetScriptメソッドを使用する方向: Query.getScript(url,成功(応答,ステータス))
パラメータ 目的: HTTP GET リクエストを介して JavaScript ファイルをロードして実行します。 //test.js を読み込んで実行します: $.getScript("test.js"); // test.js を読み込んで実行し、成功したら情報を表示します $.getScript("test.js", function(){ alert("スクリプトが読み込まれ、実行されました。"); }); 6. setTimeoutを使用してメソッドの読み込み時間を遅らせる目的: Web ページの読み込みに時間をかけるために js コードの読み込みを遅らせる <script type="text/javascript"> 関数A(){ $.post("/lord/login",{name:ユーザー名,pwd:パスワード},function(){ アラート("Hello World!"); }) } $(関数(){ setTimeout("A()",1000); // 1秒遅延}) </スクリプト> 一般的な例 - 画像の遅延読み込み原則: 画像は <img> タグです。ブラウザが画像のリクエストを開始するかどうかは、<img> の src 属性に基づきます。したがって、遅延読み込みを実装する鍵は、画像が可視領域に入る前に <img> の src に値を割り当てないことです。このようにすると、ブラウザはリクエストを送信せず、画像が可視領域に入るまで待ってから src に値を割り当てます。 <img class="lazy" src="img/loading.gif" lazy-src="img/pic1.jpg" > <img class="lazy" src="img/loading.gif" lazy-src="img/pic2.jpg" > 関数lazyload(){ var 可視; $('img').each(関数() { if( typeof($(this).attr("lazy-src"))!="undefined" ){ // 画像を遅延読み込みする必要があるかどうかを判断します visible = $(this).offset().top - $(window).scrollTop(); // 画像と上端の間の距離 if ((visible > 0) && (visible < $(window).height())){// 画像が表示領域内にあるかどうかを判断します visible = true;// 画像は表示領域内にあります } else { visible = false; // 画像は可視領域にありません} (可視)の場合{ $(this).attr('src', $(this).attr('lazy-src')); } } }); } //ページを開いて関数 lazyload() をトリガーします。 // スクロール時に関数をトリガーする window.onscroll = function(){ 遅延ロード(画像); } 2. プリロード原則: 事前に画像を読み込み、ユーザーが表示する必要があるときにローカル キャッシュから直接レンダリングします。目的: ユーザー操作ができるだけ早く反映されるように、ユーザー エクスペリエンスと引き換えにフロントエンドのパフォーマンスを犠牲にします。 プリロードを実装するいくつかの方法1. CSSの実装原則: CSS の背景プロパティを使用して、画像をオフスクリーンの背景に事前に読み込むことができます。これらの画像へのパスが同じである限り、ブラウザは、Web ページ内の他の場所で呼び出されたときに、レンダリング プロセス中に事前に読み込まれた (キャッシュされた) 画像を使用します。シンプルで効率的、JavaScript は必要ありません。 #preload-01 { 背景: url(upload/2022/web/image-01.png) 繰り返しなし -9999px -9999px; } #preload-02 { 背景: url(upload/2022/web/image-02.png) 繰り返しなし -9999px -9999px; } #preload-03 { 背景: url(upload/2022/web/image-03.png) 繰り返しなし -9999px -9999px; } 2. js プリロード画像原則: 関数を記述してプリロードします。スクリプトを関数内にラップし、addLoadEvent() を使用して、ページが読み込まれるまでプリロードを遅延します。 関数プリローダー() { ドキュメント.画像の場合 var img1 = 新しい画像(); var img2 = 新しい画像(); var img3 = 新しい画像(); 画像を拡大 画像を拡大 画像を拡大 } } 関数addLoadEvent(func) { var oldonload = window.onload; if (typeof window.onload != 'function') { window.onload = 関数; } それ以外 { window.onload = 関数() { if (oldonload) { 古いonload(); } 関数(); } } } LoadEvent を追加します(プリローダー)。 3. Ajaxを使用してプリロードを実装する原則: Ajaxを使用して、DOMを使用して画像のプリロード方法を実装し、画像のプリロードだけでなく、CSS、JavaScript、その他の関連するもののプリロードも行います。 window.onload = 関数() { setTimeout(関数() { // XHR は JS と CSS をリクエストします var xhr = 新しい XMLHttpRequest(); xhr.open('GET', 'http://domain.tld/preload.js'); xhr.send(); xhr = 新しい XMLHttpRequest(); xhr.open('GET', 'http://domain.tld/preload.css'); xhr.send(); // 画像をプリロードする 新しい Image().src = "upload/2022/web/preload.png"; }, 1000); }; 上記のコードは、「preload.js」、「preload.css」、および「preload.png」をプリロードします。 1000 ミリ秒のタイムアウトは、スクリプトがハングして通常のページで機能上の問題が発生するのを防ぐためのものです。 3. 遅延読み込みとプリロードの比較1. コンセプト遅延読み込みはレイジー読み込みとも呼ばれ、データが本当に必要な場合にのみデータの読み込みが実行されます。 2. 違い
3. 意義遅延読み込みの主な目的は、フロントエンドのパフォーマンスを最適化し、リクエストの数を減らしたり、リクエストの数を遅らせたりすることです。 IV. 参考文献【1】https://www.jb51.net/article/154930.htm js での遅延読み込みとプリロードの具体的な使用法に関するこの記事はこれで終わりです。js での遅延読み込みとプリロードに関するより関連性の高いコンテンツについては、123WORDPRESS.COM で以前の記事を検索するか、以下の関連記事を引き続き参照してください。皆様が今後も 123WORDPRESS.COM を応援してくれることを願っています。 以下もご興味があるかもしれません:
|
>>: スプレッド演算子のサンプルコードと JavaScript での応用
MySQL データベースを最適化すると、データベースの冗長性を削減できるだけでなく、データベースの実...
JavaScript は現在、毎年新しいバージョンがリリースされており、より便利で効率的な新しい演算...
目次1. いくつか2. すべての3. 見つける1. いくつかsome()メソッドは、指定された関数の...
問題の説明プロジェクトのログインページでは、7日間パスワードを記憶する必要がある機能があります。この...
最近、コンピューターの電源を入れたところ、Geek Academy が新規ユーザーに 1 か月の無料...
この記事では、MySQL 5.7.17 winx64解凍版のインストールと設定方法を紹介します。具体...
目次グローバルオブジェクトグローバルオブジェクトとグローバル変数プロセスコンソール一般的なツールユー...
MySQL 開発チームは、2019 年 10 月 14 日に MySQL 8.0.18 GA バージ...
目次セーフモード設定テスト1. where句なしで更新および削除する2. 非インデックスキーの削除3...
MySQL 5.x と MySQL 8.0.X のいくつかの違いapplication.proper...
序文Golang は、SQL データベースにアクセスするための database/sql パッケージ...
グローバルオブジェクトすべてのモジュールは呼び出すことができますglobal: ブラウザの wind...
<br />「良いデザインとは何か」と答える 1 万人に対して、少なくとも 1 万 1 ...
前回の記事では、Ubuntu 上の webrtc ベースの多人数ビデオチャット サービスの詳細なコー...
目次序文1. 404 ページ1. 原因2. 解決策2.白い画面を更新する1. 原因2. 解決策3. ...