まず質問させてください。HTML ページを作成するときに、外部から JS ファイルをインポートする場合、スクリプト タグはどこに配置しますか? 配置が異なると、ページの読み込みに影響しますか?
<script src="./1.js" 非同期></script> <script src="./1.js" 遅延></script> 非同期と遅延非同期とは、スクリプト タグで defer または async 属性がオンになっている場合、スクリプトが非同期で読み込まれることを意味します。ブラウザのレンダリング エンジンがこのコマンド行に遭遇すると、外部スクリプトのダウンロードを開始します。ダウンロード中、レンダリング エンジンは後続のコマンドを直接実行します。
async 属性と defer の違いは次のとおりです。 青い線はネットワーク読み取り (スクリプトのダウンロード) を表し、赤い線は実行を表します (どちらもスクリプト用)。緑の線は HTML 解析を表します。 defer属性を使用すると、ブラウザは対応するスクリプトをすぐにダウンロードします。ダウンロード処理中もページの処理は停止しません。ドキュメントの解析が完了するまでスクリプトは実行されません。 async属性を使用すると、ブラウザは対応するスクリプトをすぐにダウンロードします。ダウンロード処理中はページ処理は停止しません。ダウンロードが完了するとすぐに実行されます。実行処理中はページ処理が停止します。 属性が設定されていない場合、スクリプトが検出されると、スクリプトがダウンロードされて実行された後、ページの処理が続行されます。 [注意] async は defer よりも強力です。同じタグで両方の属性を同時に使用する場合は、async に従ってください。 ! ! 複数のスクリプトasync と defer の違いは、外部スクリプト ファイルのダウンロードと実行だけでなく、複数のスクリプトが存在する場合の違いにも反映されます。 外部スクリプトファイル // ... 大量の js コード console.log('1'); 2.js ファイル: コンソールログ('2'); メインHTMLファイル defer を使用する: <!DOCTYPE html> <html lang="ja"> <ヘッド> <メタ文字セット="UTF-8"> <meta name="viewport" content="width=デバイス幅、初期スケール=1.0"> <title>js ブロッキング</title> <!-- defer は dom を最初に実行します --> <script src="./1.js" 遅延></script> <script src="./2.js" 遅延></script> </head> <本文> <h1>js ブロッキングはどのように機能しますか? </h1> <スクリプト> document.addEventListener('DOMContentLoaded', 関数() { console.log('DOMコンテンツが読み込まれました'); }) </スクリプト> </本文> </html> コンソール実行結果: 非同期の使用: <!DOCTYPE html> <html lang="ja"> <ヘッド> <メタ文字セット="UTF-8"> <meta name="viewport" content="width=デバイス幅、初期スケール=1.0"> <title>js ブロッキング</title> <!-- defer は dom を最初に実行します --> <script src="./1.js" 非同期></script> <script src="./2.js" 非同期></script> </head> <本文> <h1>js ブロッキングはどのように機能しますか? </h1> <スクリプト> document.addEventListener('DOMContentLoaded', 関数() { console.log('DOMコンテンツが読み込まれました'); }) </スクリプト> </本文> </html> コンソール実行結果: コンソールの実行結果から、次のことがわかります。 async :先に完了したダウンロードがすぐに実行されます。 ! !これら 2 つのスクリプトは、DOMContentLoaded イベントがトリガーされる前には実行されない可能性がありますが、window.onload イベントの前には確実に実行されます。さらに、最初にダウンロードされたスクリプトの実行中は、他のスクリプトのダウンロードは停止せず、ダウンロードが継続されることに注意してください。 [注意] DOMContentLoaded は、DOM の読み込みが完了した後、つまりドキュメントが完全に読み込まれて解析された後にトリガーされます。 まとめ
参照する[1] https://blog.csdn.net/mx18519142864/article/details/82021754 これで、JavaScript ファイルの読み込みとブロックの問題のパフォーマンス最適化のケースに関するこの記事は終了です。JavaScript ファイルの読み込みとブロックの問題に関するより関連性の高いコンテンツについては、123WORDPRESS.COM の以前の記事を検索するか、以下の関連記事を引き続き参照してください。今後とも 123WORDPRESS.COM をよろしくお願いいたします。 以下もご興味があるかもしれません:
|
入力サブシステムフレームワークLinux 入力サブシステムは、上から下に向かって、入力サブシステム ...
1. ソフトウェアをダウンロードする1. MySQL の公式サイトにアクセスし、Oracle アカ...
この記事では、参考までに、簡単なコメントエリアを実装するためのjQueryの具体的なコードを紹介しま...
セットアップは、結合された API を記述するために使用されます。テンプレートが使用できるようにする...
コードをコピーコードは次のとおりです。 <!DOCTYPE HTML PUBLIC "...
ニーズの発見領域の一部のみスクロールでき、残りの部分は移動できない場合、どのような方法を使用しますか...
1 ダウンロードして準備するまず、公式ウェブサイトからTomcatをダウンロードする必要があります。...
MySQL 5.7 には、オンライン DDL、マルチソース レプリケーション、拡張された半同期、テー...
この例で開発されたカスケード ドロップダウン メニューは、既存の JSON データに基づいて作成され...
ディスプレイ定義IDテーブルに定義された自動増分IDが上限に達した場合、次のIDを申請する際に得られ...
Confluence は有料ですが、クラックして使用できます (購入が推奨され、正規版がサポートされ...
1. 成果を達成する 2. バックエンドから返されるデータ形式 「リスト」: [ { "i...
CSS は、スクロールを許可しながらスクロール バーを非表示にするために Overflow を設定し...
この記事の例では、双方向データバインディングを実装するためのVueの具体的なコードを参考までに共有し...
MySQL 8.0.12 のインストールには 2 日かかり、さまざまな問題が発生しました。以下にまと...