13

HTMLがページのロードとレンダリングを終了したことを検出することは可能ですか?もしそうなら、どのように?

このページは、HTML、ajaxの呼び出し、ajaxの呼び出しからのデータの受信、多くのjavascriptのもの、およびいくつかの画像で構成されています。すべてが終了したことを検出したいと思います。いつ終わるかわからないので、最後に関数呼び出しを貼り付けることはできません。

たとえば、ページには、ユーザーが選択して選択できるajaxスタイルの要素がたくさんあります。つまり、ユーザー1の要素の数はユーザー2とは異なり、順序も異なる場合があります。

したがって、最後の関数を使用してHTMLレンダリングの終了をシミュレートすることはできません。これは、どの関数が最後の関数になるかわからないためです。

4

3 に答える 3

10

あなたの質問に答える際の問題は、最後の数文で、ユーザーの選択のために終わりがどこにあるのかわからないと言っていることです。JavaScript をバインドできる自動イベントは 2 つあります。DOM が操作の準備ができていることを意味するjQuery 呼び出し$(document).ready()(画像のロード前、および外部スクリプトと CSS のロード後) と、より一般的にボディと呼ばれるものonload(jQuery では、これは次のように記述できます)$(window).load()) すべての静的アセットがフェッチされた後に実行されます。Ajax 呼び出しは、少なくとも DOM の準備が整った後にすべて起動し、それらすべての後に何が起こるかについて定義されたイベントはありません。そのためには、自分でそれらを追跡する必要があります。「納屋からの最後の馬」アプローチを使用できます。Ajax 呼び出しの最後に小さなロジックを追加して、それが最後かどうかを確認し、"reallyAllDone" というカスタム イベントを発生させます。

于 2012-09-28T07:52:10.510 に答える
0

はいオンロード

<body onload="load()">

これにより、本体のコンテンツがいつ読み込まれたかが検出されます。

于 2012-09-28T07:36:13.793 に答える
-2

$(document).ready

dom がいつイベントを終了し、準備ができたかを知るのに役立ちます

于 2012-09-28T07:36:25.930 に答える