非同期は延期よりも優れていますか?

torjinx

私の理解では、スクリプトを実行するために解析を停止する必要がないため、スクリプトはdeferedではなくasyncedにする必要があります(これらのグラフを使用しています)。解析を停止する必要がある場合、それはページコンテンツが正しく表示されるまでに時間がかかることを意味しますか?もしそうなら、なぜasyncこれまでよりも優れているのdeferでしょうか?

例:自分のサイトでGooglereCAPTCHAを使用しています。Googleから、終了</head>タグの直前にスクリプトを挿入するように求められました

    <script src='https://www.google.com/recaptcha/api.js'></script>
</head>

ページの読み込みが完了する前にこのスクリプトを実行する必要があるのはなぜですか?私はdeferそれをすべきではありませんか?

torjinx

了解しました。インターネットを何時間も精査した後、ようやく答えが返ってきました。この素晴らしいブログ記事

ASYNCでロードされたスクリプトは、リソースのダウンロードが完了するとすぐに解析および実行されます。一方、DEFERスクリプトは、HTMLドキュメントの解析が完了するまで実行されません(AKA、DOM Interactive、またはperformance.timing.domInteractive)。

..。

ASYNCウォーターフォールとDEFERウォーターフォールを比較すると、DEFERを使用すると、DOM Interactiveがより早く起動し、レンダリングをより迅速に進めることができることがわかります。

しかしながら:

ASYNCとDEFERはHTMLパーサーをブロックしませんが、レンダリングをブロックすることができます。これは、レンダリングが完了する前に解析および実行され、ブラウザーのメインスレッドを引き継ぐときに発生します。仕様には、レンダリングが完了するまで待たなければならないということは何もありません

したがって、基本的に、これからの私の理解は、レンダリング(解析とある程度並行して発生しますが)はで高速deferになりますが、レンダリングプロセス全体ですべてのJavaScriptが実行されるため、最終的にはページの読み込みに同じくらいの時間がかかります。ユーザーは物事がより早く現れるのを見ることができるので、これはユーザーにとって少し満足のいくものです。ただし、本当に読み込み速度を向上させたい場合は、可能な場合は、読み込み後にスクリプト読み込む必要があります。

結論:のasync代わりに使用する理由はないようですdefer

この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。

侵害の場合は、連絡してください[email protected]

編集
0

コメントを追加

0

関連記事

分類Dev

SonarLintはSonarAnalyzer.CSharpよりも優れていますか

分類Dev

UbuntuはWindowsよりも優れていますか?

分類Dev

SSDはSuperfetchよりも優れていますか?

分類Dev

JavaScriptのinstanceofArrayはisArrayよりも優れていますか?

分類Dev

mqttはhttpよりも優れていますか

分類Dev

ローカル変数で同期され、同期されたメソッドよりも優れていますか?

分類Dev

C ++ fgetcよりも優れているものはありますか?

分類Dev

同期ブロックは同期メソッドよりも優れているのはなぜですか?

分類Dev

LiquidでJSを非同期または延期するにはどうすればよいですか?

分類Dev

PHPは同期されていますか、それとも非同期ですか?

分類Dev

MapReduceがsparkよりも優れている場合はありますか?

分類Dev

TestCafeはSeleniumよりもどのように優れていますか?

分類Dev

Java: "xx" .equals(variable)はvariable.equals( "xx")よりも優れていますか?

分類Dev

KotlinコルーチンはRxKotlinよりも優れていますか?

分類Dev

「constexprif」はswitchステートメントよりも優れていますか?

分類Dev

pygame.time.delay()はtime.sleep()よりも優れていますか?

分類Dev

os.remove()+ os.rmdir()はshutil.rmtree()よりも優れていますか

分類Dev

C ++ 2つのロックは1つよりも優れていますか?

分類Dev

Ubuntuのバッテリー管理はWindowsよりも優れていますか?

分類Dev

Zen of Python '明示的は暗黙的よりも優れています'

分類Dev

logbackはlog4j2よりも優れています

分類Dev

Jquery DOM操作それよりも優れているものはありますか?

分類Dev

非同期BlockingCollection <T>のようなものはありますか?

分類Dev

LinuxがWindowsやMacOSよりも優れている可能性はどのようにありますか?

分類Dev

移植性とは何ですか?Javaは他の言語よりも移植性に優れていますか?

分類Dev

AngularJSはKnockoutJSよりも優れていますか?AngularJSまたはKnockoutJSを優先する必要がありますか?

分類Dev

bashスクリプトでは、角かっこ表記は逆引用符よりも優れていますか?

分類Dev

GETDATE()+ xがDATEADD(day、x、GETDATE())よりも優れている点はありますか?

分類Dev

テスト結果が検証結果よりも優れている可能性はありますか?

Related 関連記事

  1. 1

    SonarLintはSonarAnalyzer.CSharpよりも優れていますか

  2. 2

    UbuntuはWindowsよりも優れていますか?

  3. 3

    SSDはSuperfetchよりも優れていますか?

  4. 4

    JavaScriptのinstanceofArrayはisArrayよりも優れていますか?

  5. 5

    mqttはhttpよりも優れていますか

  6. 6

    ローカル変数で同期され、同期されたメソッドよりも優れていますか?

  7. 7

    C ++ fgetcよりも優れているものはありますか?

  8. 8

    同期ブロックは同期メソッドよりも優れているのはなぜですか?

  9. 9

    LiquidでJSを非同期または延期するにはどうすればよいですか?

  10. 10

    PHPは同期されていますか、それとも非同期ですか?

  11. 11

    MapReduceがsparkよりも優れている場合はありますか?

  12. 12

    TestCafeはSeleniumよりもどのように優れていますか?

  13. 13

    Java: "xx" .equals(variable)はvariable.equals( "xx")よりも優れていますか?

  14. 14

    KotlinコルーチンはRxKotlinよりも優れていますか?

  15. 15

    「constexprif」はswitchステートメントよりも優れていますか?

  16. 16

    pygame.time.delay()はtime.sleep()よりも優れていますか?

  17. 17

    os.remove()+ os.rmdir()はshutil.rmtree()よりも優れていますか

  18. 18

    C ++ 2つのロックは1つよりも優れていますか?

  19. 19

    Ubuntuのバッテリー管理はWindowsよりも優れていますか?

  20. 20

    Zen of Python '明示的は暗黙的よりも優れています'

  21. 21

    logbackはlog4j2よりも優れています

  22. 22

    Jquery DOM操作それよりも優れているものはありますか?

  23. 23

    非同期BlockingCollection <T>のようなものはありますか?

  24. 24

    LinuxがWindowsやMacOSよりも優れている可能性はどのようにありますか?

  25. 25

    移植性とは何ですか?Javaは他の言語よりも移植性に優れていますか?

  26. 26

    AngularJSはKnockoutJSよりも優れていますか?AngularJSまたはKnockoutJSを優先する必要がありますか?

  27. 27

    bashスクリプトでは、角かっこ表記は逆引用符よりも優れていますか?

  28. 28

    GETDATE()+ xがDATEADD(day、x、GETDATE())よりも優れている点はありますか?

  29. 29

    テスト結果が検証結果よりも優れている可能性はありますか?

ホットタグ

アーカイブ