13

あちこちで、js コードをページの head セクションまたはend body タグの(申し訳ありませんが) に配置する必要があることをよく読みます。これについての議論はさておき、私はブラウザによるそのようなものの読み取り順序が何であるかを知りたいだけです(ここではそれらが同等に機能すると仮定します):

配置できますか:

$(document).ready(function(){

ページ構造のどこにいて$(document).readyも、 head セクションを使用しているか、まだ配置する必要があるためですか?

誰でもこれを明確にしてください。

質問が明確でない場合は、言い換えることができます。

4

5 に答える 5

18

ドキュメント内の任意の場所にスクリプトを配置できます。通常、ベスト プラクティスでは、ページの読み込みのパフォーマンスを考慮して、スクリプトをフッターに配置することをお勧めします。さらに、ベスト プラクティスでは通常、メンテナンスを容易にするためにスクリプトをまとめて配置することをお勧めします。

ただし、仕様によると、ドキュメント内のどこにscriptタグを配置するかについての制限はありません。それらをまとめてヘッダー、本文の下部、ドキュメント全体に散りばめたり、それらを組み合わせて配置したりできます。

jQuery コンストラクトを使用すると$(document).ready、ドキュメント内のどこに配置されても同じ結果になります。重要なのは、この構造の背後にある機能を理解することです。

JavaScript は、ページのレンダリング時にコードを実行するためのロード イベントを提供しますが、このイベントは、画像などのすべてのアセットが完全に受信されるまでトリガーされません。

readyは に似ていdocument.onloadますが、同じではありません。コードがどこにあるかは問題ではありませdocument.onloadready。ドキュメント内のコードの配置は、イベント ハンドラー/リスナーによってラップされていない場合にのみ重要です。

上の場所に関する唯一の制限$(document).readyは、jQuery ライブラリを含める前にそれが発生しないことです。$(document).readyはjQueryを使っているので、jQueryがないと……使えません。

<html>
    <head>
        <script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.3/jquery.min.js"></script>
        <script>
            alert('executed as soon as it is reached (as the document is downloaded)');
            $(document).ready(function () { alert('on jQuery ready'); });
        </script>
    </head>
    <body onload="alert('executed on document.onload event');">
        <script>
            alert('executed as soon as it is reached (as the document is downloaded)');
            $(document).ready(function () { alert('on jQuery ready'); });
        </script>
    </body>
</html>

ドキュメンテーション

于 2013-07-15T16:31:34.787 に答える
2

私の知る限り、$(document).readyDOMが完全にロードされた後にイベントが発生するため、どこに配置しても問題ありません。

しかし、ページがエンドユーザーに即座に表示され、javascript がバックグラウンド プロセスとして引き続き実行されるため、本文の最後にスクリプトを記述するように言われています。

于 2013-07-15T16:31:47.110 に答える
1

ブラウザはスクリプトを上から下に実行するため、head セクションのスクリプトは body セクションのスクリプトの前に実行されます。私はスクリプトを html コードの下に配置することを好みますが、通常、ページが完全に読み込まれるのを待っていても、それほど問題にはなりません。

于 2013-07-15T16:35:48.773 に答える
0

私の知る限り、BKM はフッターに配置することになっています (ほとんどの開発者は head タグに配置する傾向があります)。主な理由 - ドキュメント DOM のほとんどは、JS をロードする前にブラウザーにレンダリングされます。

于 2013-07-15T16:34:27.110 に答える
0

ドキュメント準備完了関数は、実行前に DOM がロードされるまで待機します。したがって、技術的には、どこに置くかは問題ではありません。ページが読み込まれる前にスクリプトが確実に読み込まれるようにするため、多くの人がスクリプトを head に配置することを好みます。他の人は、スクリプトがそれらを読み取る前にページのすべての要素が読み込まれるように、最後 (end body タグの直前) に配置することを好みます。しかし、とにかく DOM がロードされるのを待っているので、それは問題ではありません。

小さな関数がある場合は、ドキュメントの準備ができている関数を head タグに入れるだけです。

于 2013-07-15T16:33:17.857 に答える