22
jQuery http://api.jquery.com/jQuery.when/のDeferredパターンを使用して、次のステップに進む前に複数のjsonp ajax呼び出しを行い、結果を待つようにしています。これは、 ".done()"遅延オブジェクトに解決された引数のパラメータの数を設定できるので、一定量の呼び出しを使用してこれを行うことができます。しかし、私のアプリケーションでは、呼び出しの数が動的で常に不明であるため、機能しません。動的複数遅延jQuery Ajaxコール
この最初の簡単な例は、.done()解決関数内のargsの数を設定できるので機能します。
$.when($.ajax(url1), $.ajax(url2)).done(function(a1, a2) {
var data = a1[ 0 ] + a2[ 0 ];
});
これは私が必要なものであるが、それは仕事を得ることができません:上の任意の助け
var urls = GetUrlList(); // returns array of urls to json service
var requests = []; // hold ajax request
for (i = 0; i < urls.length; i++) {
requests.push($.ajax(url[i]));
}
$.when.apply($, requests).done(function ("what goes here?") {
// Need to get the data returned from all ajax calls here
});
おかげで私は.whenで2つのコールが()があるので、私は2を必要と知っていますこの!
感謝を渡されたすべての引数を保持しているオブジェクトの特別な王である、argumentsを使用することができます! –
これは少なくとも2つの送信要求がある場合にうまく機能します。それ以外の場合は、1つのクエリまたはいくつかの場合、矛盾した動作が発生します。( – Happynoff
引数へのリンクが古く、推奨されない機能を指しています[更新されたリンクはこちら](https://developer.mozilla.org/en- – Liam