延期

動作の比較

属性ダウンロード実行HTML 解析主なリスク
なしブロックすぐに一時停止初期レンダリングが遅い
非同期平行できるだけ早くダウンロード時に一時停止しました競合状態
延期平行HTML 後続き遅延機能

実行順序: 非同期、遅延、および両方

依存関係を管理し、適切な機能を確保するには、さまざまな属性を持つスクリプトの実行順序を理解することが重要です。仕組みは次のとおりです:

  1. 通常のスクリプト (非同期または遅延なし):

  2. 非同期スクリプト:

  3. スクリプトの延期:

  4. 非同期と遅延の両方を含むスクリプト:

実行順序の例:

可能な実行順序:

  1. 1.js (ブロック解析)
  2. 3.js または 2.js (最初にダウンロードした方)
  3. 2.js または 3.js (どちらか 2 番目にダウンロードされる方)
  4. 4.js
  5. 5.js

2 と 3 は任意の順序で実行できますが、1.js のダウンロードに時間がかかる場合は 1 より前に実行することもできることに注意してください。

ベストプラクティス

  1. 分析などの独立したスクリプトには非同期を使用します。
  2. DOM または他のスクリプトに依存するスクリプトには defer を使用します。
  3. 非同期で にスクリプトを配置するか、ダウンロードを早期に開始するように遅延します。
  4. 重要なスクリプトについては、 内のインライン スクリプトを検討してください。

ブラウザのサポート

非同期と遅延はどちらも最新のブラウザーで広くサポートされています。古いブラウザの場合は、スクリプト ローダーを使用するか、.

の最後にスクリプトを配置することを検討してください。 ","image":"http://www.luping.net/uploads/20241009/1728469445670659c5d48f7.jpg","datePublished":"2024-11-08T07:51:11+08:00","dateModified":"2024-11-08T07:51:11+08:00","author":{"@type":"Person","name":"luping.net","url":"https://www.luping.net/articlelist/0_1.html"}}
「労働者が自分の仕事をうまくやりたいなら、まず自分の道具を研ぎ澄まさなければなりません。」 - 孔子、「論語。陸霊公」
表紙 > プログラミング > スクリプトタグをマスターする: 正確なスクリプト制御のための Async と Defer の使用

スクリプトタグをマスターする: 正確なスクリプト制御のための Async と Defer の使用

2024 年 11 月 8 日に公開
ブラウズ:241

Mastering Script Tags: Using Async and Defer for Precise Script Control

Web 開発の世界では、ページの読み込み時間を最適化することが非常に重要です。

基本: スクリプトのロード方法

デフォルトでは、ブラウザが

  1. HTML 解析を一時停止します
  2. スクリプトをダウンロードします
  3. スクリプトを実行します
  4. HTML 解析を再開します

このプロセスにより、特に大規模なスクリプトや接続が遅い場合、ページのレンダリングが遅くなる可能性があります。さらに、特定の HTML 要素が完全に読み込まれる前にスクリプトが実行されると、バグが発生する可能性があります。これは、スクリプトがドキュメント内に正しく配置されていない場合によく発生します。

非同期と遅延: 両刃の剣

非同期

  • 機能: HTML 解析を続行しながら、スクリプトを非同期的にダウンロードします。
  • 実行時: ダウンロードされるとすぐに、HTML 解析を一時停止します。
  • 使用する場合: 他のスクリプトや DOM コンテンツに依存しない独立したスクリプト。
  • 警告: 順序どおりに実行されず、依存関係が壊れる可能性があります。

延期

  • 動作: HTML 解析を続行しながらスクリプトをダウンロードします。
  • 実行時: HTML 解析が完了した後、DOMContentLoaded イベントの前。
  • 使用する場合: DOM コンテンツに依存するスクリプト、または特定の順序で実行する必要があるスクリプト。
  • 警告: 重要な機能の実行が遅れる可能性があります。

動作の比較

属性 ダウンロード 実行 HTML 解析 主なリスク
なし ブロック すぐに 一時停止 初期レンダリングが遅い
非同期 平行 できるだけ早く ダウンロード時に一時停止しました 競合状態
延期 平行 HTML 後 続き 遅延機能

実行順序: 非同期、遅延、および両方

依存関係を管理し、適切な機能を確保するには、さまざまな属性を持つスクリプトの実行順序を理解することが重要です。仕組みは次のとおりです:

  1. 通常のスクリプト (非同期または遅延なし):

    • ドキュメント内に出現する順序で実行します。
    • ダウンロードして実行されるまで HTML 解析をブロックします。
  2. 非同期スクリプト:

    • 並行してダウンロードし、利用可能になったらすぐに実行します。
    • 実行順序は保証されていません。ダウンロードされるとすぐに実行されます。
    • DOM が完全にロードされる前に実行される可能性があります。
  3. スクリプトの延期:

    • 並行してダウンロードしますが、HTML 解析が完了した後にのみ実行します。
    • ドキュメント内に出現する順序で実行します。
    • DOMContentLoaded イベントの前に実行します。
  4. 非同期と遅延の両方を含むスクリプト:

    • 最新のブラウザでは async 属性が優先されます。
    • 非同期をサポートしていない古いブラウザでは、遅延動作に戻ります。

実行順序の例:

可能な実行順序:

  1. 1.js (ブロック解析)
  2. 3.js または 2.js (最初にダウンロードした方)
  3. 2.js または 3.js (どちらか 2 番目にダウンロードされる方)
  4. 4.js
  5. 5.js

2 と 3 は任意の順序で実行できますが、1.js のダウンロードに時間がかかる場合は 1 より前に実行することもできることに注意してください。

ベストプラクティス

  1. 分析などの独立したスクリプトには非同期を使用します。
  2. DOM または他のスクリプトに依存するスクリプトには defer を使用します。
  3. 非同期で にスクリプトを配置するか、ダウンロードを早期に開始するように遅延します。
  4. 重要なスクリプトについては、 内のインライン スクリプトを検討してください。

ブラウザのサポート

非同期と遅延はどちらも最新のブラウザーで広くサポートされています。古いブラウザの場合は、スクリプト ローダーを使用するか、

. の最後にスクリプトを配置することを検討してください。
リリースステートメント この記事は次の場所に転載されています: https://dev.to/umairian/mastering-script-tags-using-async-and-defer-for-precise-script-control-d9n?1 侵害がある場合は、study_golang にご連絡ください。 @163.com 削除
最新のチュートリアル もっと>

免責事項: 提供されるすべてのリソースの一部はインターネットからのものです。お客様の著作権またはその他の権利および利益の侵害がある場合は、詳細な理由を説明し、著作権または権利および利益の証拠を提出して、電子メール [email protected] に送信してください。 できるだけ早く対応させていただきます。

Copyright© 2022 湘ICP备2022001581号-3