2

Jqueryにはreadyメソッドがあります:

$(document).ready(function(){
   // my code
})

dom の準備ができたらコードを実行します。

</body>すべてのスクリプトを の後に置くと、質問があります。

<html>
    <body>
       // all kinds of html tags
    </body>
    <script src="/path/to/jquery.js"></script>
    <script src="/path/to/all-javascript-compressed-in-one-file.js"></script>
</html>

まだ書く必要があります$(document).ready()か?ドムはすでにready</body>ですか?

4

2 に答える 2

4

通常、スクリプトは の直後ではなく の直前に </body>追加されます。それ以外の場合、HTML は検証されません。Šime Vidas のコメントで指摘されているように<head>、 、またはの外にコンテンツを表示することはできません。<body>

そうは言っても、技術的には、その時点では DOM はまだ準備ができているとは見なされませんが (ブラウザーがまだ を解析しているため<body>)、本体のすべての要素が既に含まれています。したがって、スキップしても安全$(document).ready()です。

これを行うと、実際のDOMContentLoadedイベントが発生するまでに多少の遅延があるため、初期化スクリプトがより早く実行されます。つまり、ページの読み込みが速くなり、ユーザー エクスペリエンスが向上します。

jQueryイベントの強制に関するこの関連する議論に興味があるかもしれません。ready

于 2012-11-01T13:55:47.800 に答える
3

一言で言えば、いいえ。DOM ツリーが使用可能な場合、DOM は「準備完了」と見なされます。JavaScript がページの最後の部分である場合、Web ページは上から下に「ロード」されるため、それより前のすべてが「準備完了」です。

于 2012-11-01T13:55:06.377 に答える