JQuery 1.9.1 アプリから 2 つの Web サービス呼び出しを行う必要があります。2 番目の呼び出しを行う前に、最初の呼び出しの結果が必要です。
getJSON リクエストがスレッドをブロックしていないようです。JavaScript はマルチスレッドではないと言われましたが、これらのサーバー呼び出しの間をブロックするにはどうすればよいですか?
JQuery 1.9.1 アプリから 2 つの Web サービス呼び出しを行う必要があります。2 番目の呼び出しを行う前に、最初の呼び出しの結果が必要です。
getJSON リクエストがスレッドをブロックしていないようです。JavaScript はマルチスレッドではないと言われましたが、これらのサーバー呼び出しの間をブロックするにはどうすればよいですか?
jQuery のすべての関数は、 Promise インターフェイスを実装するオブジェクトajax
を返します。jqXHR
非同期リクエスト(およびその他すべて)をブロックする代わりに、リクエストを次のようにネストします
$.ajax({...})
.done(function( data ) {
// second request
$.ajax({...});
});
まあ、スレッドをブロックする必要はありません。それは古い学校です。
次の 2 つのオプションがあります。
2 番目の方法をお勧めします。これが正しい方法です。
/* Call 1 */
$.ajax({
url: 'first url to call',
data: 'first data sent to the server',
success: function (results1){
// Do something with the results
/* make the second call */
$.ajax({
url: 'sencond url to call'
data: 'second data sent to the server'
success: function(results2){
// Do something when all completed
}
});
}
});
async falseモードで最初の ajax リクエストをサーバーに呼び出します
$.ajax({
url: Url,
dataType: 'json',
async: false,
data: myData,
success: function(data) {
//stuff
}
});