1. ホーム
  2. javascript

[解決済み] HTML script タグで async 属性と defer 属性の両方を使用することはできますか?

2023-03-21 03:54:56

質問

次のようなJavaScriptコードを deferasync :

<script defer async src="/js/somescript.js"></script>

から defer は Internet Explorer 5.5+ でサポートされています。 CanIUse.com のように、asyncが使えない場合はdeferを使うように潔くフォールバックしたいものです。非同期は使えるときに使ったほうがいいと思うのですが、Internet Explorer 10まではサポートされていないようです。

私の質問は、したがって、上記のコードは有効なHTMLでしょうか?そうでない場合、JavaScriptを使用してこの状況を作り出すことは可能でしょうか。 defer を使うという状況を作ることはできますか? async は使えないのですか?

どのように解決するのですか?

仕様書から https://www.w3.org/TR/2011/WD-html5-20110525/scripting-1.html#attr-script-async

<ブロッククオート

defer 属性は async 属性が指定されている場合でも指定することができ、defer のみサポートするレガシーウェブブラウザ(async はサポートしない)が、デフォルトである同期ブロック動作の代わりに defer 動作にフォールバックするようにするためです。

(通常のスクリプトと defer および async を使用したスクリプトの違いを視覚的に表現するために、以下の参照リンクを確認してください)


参考文献