遅延読み込み(レイジー読み込み)とプリロードは、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 での応用
結果から判断すると、タイトルを定義するための固定パターンはなく、すべてむしろランダムな感じがします。...
目次1. プロトタイプチェーン継承2. コンストラクタの借用(古典的な継承) 3. 組み合わせ継承4...
目次1. 関数を宣言する2. 関数の呼び出し3. 関数パラメータ4. 関数の戻り値5. 議論の使用6...
目次1. ユーザーとユーザーグループの重要性1) ユーザーの存在意義2) ユーザーグループの重要性2...
目次1. トランジションとアニメーションの違い2. Vueを使用して基本的なCSSトランジションとア...
1. はじめにMYSQL の MDL ロックは常に頭痛の種でした。ロックについて話すとき、通常は I...
ただし、デフォルトの src を持つ <img> 要素を使用してスクロール読み込み効果を...
最初のステップ: VMwareで、「編集」-「仮想ネットワークエディタ」をクリックします。下図に示す...
目次1. TypeScriptが古いVueプロジェクトに導入されるVue+Typescript プロ...
以下のように表示されます。 mysql.proc から名前を選択します (db='データベー...
序文最近、オンラインでデータが誤って操作されました。データベースが直接変更されたため、それを回復する...
Web ページの読み込み速度は、Web サイトの品質を評価するための重要な指標です。その理由は、ほと...
この記事の例では、Androidの9グリッド画像を表示するための具体的なコードを参考までに共有してい...
この記事で使用されているPHPベースイメージはphp:7.3-apacheです。この記事の Lara...
Linux で大量のファイルを削除する効率をテストします。まず500,000個のファイルを作成する$...