4

ここでJqueryを使用するのはかなり新しいですが、私が言われ、実行していることの1つは、htmlを読み取った後、ページの下部にJavascriptを追加することです。

これで、コードがページの下部にある場合でも、$(document).ready(function()を追加する人がいます。HTMLの読み取り中にDOMが段階的に構築されていませんか?HTMLの読み取りが終了するまでに、DOMは自動的に準備ができているべきではないので、このチェックを追加する意味は何ですか?

たとえば、小さなデモ:

<ul>
    <li id="draggable" class="ui-state-highlight">Drag me down</li>
</ul>

<ul id="sortable">
    <li class="ui-state-default">Item 1</li>
    <li class="ui-state-default">Item 2</li>
    <li class="ui-state-default">Item 3</li>
    <li class="ui-state-default">Item 4</li>
    <li class="ui-state-default">Item 5</li>
</ul>
<script>
alert("In Page");
</script>

</div><!-- End demo -->

<script>
$(function() {
    alert("Dom is READY");
    $( "#sortable" ).sortable({
    revert: true
    });

    $( "#accordion" ).accordion();
});
</script>

「ページ内」が常に最初に表示されます...HTMLが十分に「大きくない」ためですか?

4

2 に答える 2

3

真実は、ドキュメントの最後までにすべてのコントロールが存在するため、document.ready とドキュメントの下部はほとんど同じものです。個人的には、JQuery フレームワークがドキュメントの終了を識別する方法であるため (理想的には、フレームワークの推奨される方法に固執する必要があります)、document.ready を好みます。

于 2012-05-26T03:32:27.547 に答える
2

そのようにコードをインラインで記述する場合、jQuery をヘッドにロードすると仮定すると、ドキュメントを onReady にする必要はないかもしれません。

ページ コードがドキュメント内の外部 JavaScript リソース (最下部にない場合があります) を介して読み込まれると、違いが生じ始めます。そうする主な理由は、ブラウザがコードをキャッシュできるようにして、ネットワークのオーバーヘッドを減らすためです。

于 2012-05-26T03:44:22.463 に答える