2016-06-17 1 views
0

滞在jQueryの場合...その取得要求が、私はいくつかのGETリクエストを送信する必要がある、と私はjqueryのは、次のリクエストに移動する前にフィンランドへのリクエストをお待ちしておりますことを確認する必要があり、時系列順に

を確保彼らは常にfinnisことを確実にするために

$.get("url 1 here", { parameter:"value"}, function(data){ 
$.get("url 2 here", { parameter:"value"}, function(data){ 
$.get("url 3 here", { parameter:"value"}); 
}); 
}); 

:私は単に

$.get("url 1 here", { parameter:"value"}... 
$.get("url 2 here", { parameter:"value"}... 
$.get("url 3 here", { parameter:"value"}... 

が、それは次を送信する前にフィンランドへの最初の要求を待つjQueryのだろうか、私のような何かをする必要があります行きますhは次のものが送られる前に?ありがとう。

+0

2番目の方法で行う必要があります。 – Barmar

+0

'$ .get()'(およびすべてのAjaxメソッド)の性質は、コードの次のビットが何であっても応答を待つことを想定していないということです。そう、2番目の方法です。 – nnnnnn

答えて

0

JQueryのajaxメソッドは、デフォルトでは非同期ですが、変更できます。 非同期の性質(スクリプトがあなたのajax呼び出しを超えて続けることを意味する)を維持したい場合や、非同期でないように変更することができる場合は、自分自身で説明したようにすることができます。

必要ならば、getからajax関数に変更する必要があります。

$.ajax({ 
    url: 'url1', 
    async: false, 
    data { parameter: 'value' }, 
    success: function(result) { } 
}); 

$.ajax({ 
    url: 'url2', 
    async: false, 
    data { parameter: 'value' }, 
    success: function(result) { } 
}); 

$.ajax({ 
    url: 'url3', 
    async: false, 
    data { parameter: 'value' }, 
    success: function(result) { } 
}); 

ここでは、 "async"パラメータがfalseに設定されています。

+0

'async:false'を設定しないでください。これは、実行中のUI全体をブロックします。*と*は償却され、新しいブラウザからは消えます。 –

関連する問題