2

各サーバーのパフォーマンスを計算する Web サイトがあります。要件の 1 つは、バックグラウンドで別の機能を実行する前に、まずパフォーマンスに関する中央の部分ページの読み込みを終了する必要があることです。

この中央の部分ページは ajax 呼び出しを使用しています。それらはdocument.readyjs ファイルの で定義されています。

$(document).ready(function () {
// ajax call here
// another ajax call here
// third ajax call here
});

次に、ドキュメント内の関数の準備が整った後に実行したかった関数:

function functionA() {
// some codes here
});

私はこれを使ってみました:

$.when(document).ready(function () {
}).done(functionA);

しかし、私はそれを実行することはできません..どんな提案も喜んでいただければ幸いです。前もって感謝します!

4

2 に答える 2

1

AJAX の最初の文字は非同期document.readyを表します。これは、イベントの最後に、別の場所で処理を行っている可能性があることを意味します。は、それらが終了するのdocument.readyを待ちません。

.whenを使用して jQuery をセットアップし、3 つの AJAX 呼び出しがすべて完了したことを通知する必要があります。

// Document.ready
$(function() {
    // Any synchronous code you may do on DOM ready goes here

    // Set up the promise
    $.when(
        // Pass in all your AJAX calls.
        $.ajax({ url: "/AjaxCall1?param=true" }),
        $.ajax({ url: "/AjaxCall2?param=1" }),
        $.ajax({ url: "/AjaxCall3?param=yup" })
    ).then(function() {
        console.log("All AJAX requests finished");
    }, function() {
        console.log("Something went wrong :(");
    });
});
于 2013-11-01T08:04:21.053 に答える