<script>
タグを閉じる直前にタグを配置するのは、セクションにタグを配置して属性を指定する<body>
のと同じですか?<head>
defer="defer"
ありがとうございました。
<script>
タグを閉じる直前にタグを配置するのは、セクションにタグを配置して属性を指定する<body>
のと同じですか?<head>
defer="defer"
ありがとうございました。
はい・いいえ。
はい。defer タグを配置すると、実行前にドキュメントが読み込まれるまで待機するためです。
<script>
タグの前にを配置して</body>
も、ドキュメントが完全に読み込まれるとは限らないため、body の終了タグと HTML の終了タグの間に他のタグを配置できるためです。例
<html>
<head>
</head>
<body>
<script>...</script>
</body>
<link/>
<script>
although it is invalid HTML most browsers will render tags outside the body. This is
probably more of an error in code
<div> some content</div>
</html>
また、script タグの defer 属性は、すべてのブラウザーで機能するとは限りません。
編集:
ページの読み込みを高速化するためのパフォーマンスに関しては、この記事を参照してください。スクリプトと css を配置する場所を含むいくつかのガイドラインが提供されています。
通常はそうですが、ブラウザーは、指定しない限り (defer="defer")、ページの読み込み後に JavaScript を実行することを保証しません。
defer Gecko 1.9.1 が必要 このブール属性は、ドキュメントが解析された後にスクリプトが実行されることをブラウザに示すために設定されます。この機能は他のすべての主要なブラウザーではまだ実装されていないため、作成者はスクリプトの実行が実際に延期されると想定すべきではありません。defer スクリプトから document.write() を呼び出さないでください (Gecko 1.9.2 以降では、これによりドキュメントが吹き飛ばされます)。defer 属性は、src 属性を持たないスクリプトでは使用しないでください。Gecko 1.9.2 以降、src 属性を持たないスクリプトでは defer 属性が無視されます。ただし、Gecko 1.9.1 では、defer 属性が設定されている場合、インライン スクリプトも延期されます。
ドキュメントの解析が終了したときとタグの末尾<body>
は似ていますが、まったく同じではありません。
これは、外部src
セットを持つスクリプトでのみ機能することに注意することも重要です。