web-dev-qa-db-ja.com

ページを読み込む前に、外部の「非同期遅延」javascriptコードの読み込みが行われるのはなぜですか?

Recaptchaは、次のようなスクリプトのロードを推奨しています。

<script src="https://www.google.com/recaptcha/api.js" async defer></script>

これをhtmlドキュメントのheadセクションに追加し、ロード時にChromeでチェックしました。 Chromeは、ページのロード前にロードされることを示します(chrome devtoolsのネットワークタブは、ページのロードの終了を赤い垂直線で示し、上記のスクリプトはその前にロードされます。

何故ですか?ページのロード後のスクリプトのロードをGoogle延期することで推奨されているように非同期延期を追加するべきではありませんか?

2
Tom

allリンクされたリソース(<script async deferを含む)がロードされた場合にのみ、ページが完全にロードされます。これは、onloadイベントが発生したときです。

ただし、DOMContentLoadedイベントが発生する可能性が高いbefore this-おそらくbeforeasync deferスクリプトがロードされます。 (私は「おそらく」と言います-ブラウザが別のスレッドでスクリプトをロードできると判断できる場合同時に速度を落とすことなく、おそらくそうなると思いますが、保証はありません。 )

2
MrWhite