1

この質問の答えを見つけようとするときはいつでも、誰もが ajax の開始/停止などを参照します。

クロスドメイン呼び出しにXUI JS の XHR関数を使用していますが、今はまさにこのようにしたいです

callMyXHRfunction();
callNextFunctionWhenAboveFunctionResponded();

つまり、xhr 関数が応答しない限り (成功または失敗)、先に進む必要があります。

アップデート

使用事例:

getAllData() という関数があります。この関数は、サーバーに送信された現在のデータをすべて取得します。最新のデータを取得して先に進むには、この関数を頻繁に呼び出す必要があります。ログイン中にこの関数を呼び出して最新のデータを取得し、10 分ごとにこれを呼び出してデータを更新する必要があります。

したがって、成功関数で各関数を呼び出すと、コードが他の開発者を混乱させる可能性があり、上記のように書くと、最初の行と2行目で何が起こっているかを簡単に知ることができます.

みんなが私の状況をよく理解してくれることを願っています。

4

2 に答える 2

1

参照している Web サイトの 3 番目の例を参照してください。

x$( selector ).xhr( url, fn );

2 番目の引数はコールバックにすることができます。コールバックはおそらく最初に探していたキーワードです。

または、オプションとして指定して同期呼び出しを使用しasync: falseます。

x$("body").xhr("http://the-url",{ async: false });

制御フローは、リクエストが返されるまで一時停止し、その後で次の関数に進みます。参考としてhttp://jsfiddle.net/ZQ9uw/を参照してください。

于 2012-10-01T08:01:14.260 に答える
0

コールバック関数を指定する方法で呼び出しを行い、.xhr「次の」関数をコールバックとして渡す必要があります。

したがって、次のように記述します。

callMyXHRFunction(nextFunctionToCall); // no parens after nextFunctionToCall!

function callMyXHRFunction(callback) {
    $("something").xhr(url, {
        error: callback, // so that nextFunctionToCall is called on error
        callback: callback, // so that nextFunctionToCall is called on success
        async: true
        // add more options here
    });
}
于 2012-10-01T08:03:34.243 に答える