ページに要素を返す多数の ajax 呼び出しがある場合、それらがすべて終了したことを知る唯一の方法は、それらを追跡し、それらのコールバックを使用して、すべてが読み込まれたときに解決することです。ページの load または ready イベントは、html を介してロードされたリソースにのみ関係し、非同期リクエストを介してロードされません。Asynchronous
ここで重要なビットです。
私があなただったら、2 つのグローバル変数を持つことになります: totalNumberOfCalls
&finishedCalls
ページの開始時に totalNumberOfCalls を正しい数に設定し、コールバックごとに次のような小さなコードを記述します。
if (++finishedCalls == totalNumberOfCalls) console.log('Page Loaded');
else console.log( (finishedCalls / totalNumberOfCalls) * 100 + '% loaded');
このようにして、単純なカウンターを簡単に追加して進行状況を把握できます。
画像やその他の外部要素をロードしている場合は、返された要素のイベントをカウントする価値があるかもしれませんload
。これにより、リクエストが返された時間ではなく、関連するリソースではなく、実際のロード完了時間が得られます。
これが少し多すぎると思われる場合は、synchronous
代わりに ajax 呼び出しを行ってください。呼び出しが行われている間、ページが停止します。ただし、これは良い習慣ではありません。