私は両方の方法を見てきましたが、どちらの実装も機能しますが、構造が少し異なります。あなたの経験では、どちらがよりうまく機能しますか、またその理由は何ですか?
ベストアンサー1
実際には複数のオプションでこれに答えますが、そのうちのいくつかは実際に本文に表示されます。
- jQuery ライブラリなどのライブラリ スクリプトを head セクションに配置します。
- パフォーマンスやページの読み込みに問題が発生しない限り、通常のスクリプトをヘッドに配置します。
- インクルードに関連付けられたスクリプトを、そのインクルード内および末尾に配置します。この 1 つの例は、asp.net ページの .ascx ユーザー コントロールです。このマークアップの末尾にスクリプトを配置します。
- ページのレンダリングに影響するスクリプトを body の最後 (body の終了前) に配置します。
- マークアップ内にスクリプトを配置しないでください。代わりに、
<input onclick="myfunction()"/>
スクリプト本体のイベント ハンドラー内に配置することをお勧めします。 - 決められない場合は、ページをブロックする問題などの理由がない限り、先頭に置いておきます。
脚注: 「必要なときに必要なだけ」は、ページがブロックされる最後の項目に適用されます(知覚的な読み込み速度)。ユーザーの知覚は現実は、読み込みが速いと認識されれば、実際に読み込みが速くなります (コード内ではまだ処理が行われている可能性がありますが)。
編集: 参考文献:
- asp.net ディスカッション:http://west-wind.com/weblog/posts/154797.aspxそしてここ:http://msdn.microsoft.com/en-us/library/3hc29e2a.aspx
- jQuery ドキュメントの準備に関する議論:http://encosia.com/2010/08/18/dont-let-jquerys-document-ready-slow-you-down/?utm_source=feedburner&utm_medium=email&utm_campaign=Feed%3A+Encosia+%28Encosia%29
- この質問に対する他の回答も有効な情報を示しています。
- www.google.com や www.bing.com を使用して関連情報を検索します (参考資料がたくさんあります)
補足: スクリプト ブロックをマークアップ内に配置すると、スペースを占有して特定のブラウザーのレイアウトに影響する可能性があります (ie7 と opera 9.2 ではこの問題が発生することが知られています)。そのため、スクリプト ブロックを非表示の div に配置します ( .hide { display: none; visibility: hidden; }
div で次のような CSS クラスを使用します)。
標準: 標準では、問題がある場合、スクリプト ブロックを事実上どこにでも配置できることに注意してください。http://www.w3.org/TR/1999/REC-html401-19991224/sgml/dtd.htmlそしてhttp://www.w3.org/TR/xhtml11/xhtml11_dtd.html
編集2: 可能な場合はいつでも (常に?) 実際の Javascript を外部ファイルに配置し、それらを参照する必要があることに注意してください。これにより、関連するシーケンスの有効性が変わることはありません。