いろいろ見てて理解するまでに時間がかかったので、自分の理解を深めるためにも書いてみました。
ちょっとDjangoのテンプレート言語も交じっています。
基本的な構文は下の通り
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 | var requests = [ "{% url 'hoge' %}", "{% url 'fuga' %}" ]; var jqXHRList = []; for (var i = 0; i < requests.length; i++){ jqXHRList.push($.ajax({ "url": request[i], "data": {"test": "テスト"}, "dataType": "json", "method": "GET" })); } $.when.apply($, jqXHRList).done(function () { for (var i = 0; i < arguments.length; i++) { var result = arguments[i]; var data = result[0]; var textStatus = result[1]; var jqXHR = result = [2]; データに応じて処理を行う } }).fail(function (){ console.log("どこかで失敗") }); |
並列に処理するときには when applyを使う
when applyに投げたい$.ajax()の配列を渡してあげるとそれらを並列に処理してくれる。
実行結果はargumentsという変数で返ってくる。
その中に実行結果のデータやステータスなんかが入ってる。
コメント