0

2 つの AJAX 要求は、送信される順序を除いてあらゆる点でまったく同じです。

唯一の違いは、関数が異なるタイミングで実行されることです。機能 1、次に機能 2。

疑似コードの例。

function 1 {
   $.getJSON(url , function(json_categories) { print json_categories + '1' });
}

function 2 {
   $.getJSON(url , function(json_categories) { print json_categories + '2' });
}

私の質問は、機能 1 の前に機能 2 を印刷できますか?

4

3 に答える 3

5

はい、どちらの応答もいつでも到着できます。ネットワークの遅延やサーバーの負荷など、多くの変数が関係しています。さらに、JavaScript 側には特定の順序を強制するものは何もありません。どちらも、応答が到着するたびに実行されるように配線された非同期コールバックです。

于 2013-07-24T15:02:10.603 に答える
2

両方のリクエストが返されるのを待つ必要がある場合は、jQuery の$when()メソッドを使用します。

$.when($.getJSON(url1), $.getJSON(url2)).then(function (json_categories1, json_categories2) { ... })
于 2013-07-24T15:11:55.633 に答える
1

はい、非同期呼び出しであるためです。URL を呼び出して応答を待ちます。これは、制御できない多くの変数に依存します。通常の呼び出しを行う場合は、非同期パラメーターを「false」に設定します (注意: これは推奨されておらず、将来の jQuery バージョンでは削除される予定です)。

于 2013-07-24T15:04:15.780 に答える