同じページを異なるパラメーターで同時に6回ロードし、すべてのページがロードされた後に何かをする必要があります.jQueryの遅延関数はそれを行うことができます.最も簡単な方法は.
$.when(
$.post('ajax1.php', {val: 1}),
$.post('ajax2.php', {val: 2}),
$.post('ajax3.php', {val: 3}),
$.post('ajax4.php', {val: 4}),
$.post('ajax5.php', {val: 5}),
$.post('ajax6.php', {val: 6})
)
.done(function() {
console.log('all done');
});
しかし、実際にはまったくスマートではないように見えます。関数ごとにロードし、繰り返し作業に for ループを使用したいと考えています。
var done = $.Deferred();
$.when(loadPage(done))
.done(function() {
console.log("all done");
});
function loadPage(done) {
for (i = 1; i <= 6; i++) {
$.post("ajax.php", {val: i} function(response) {
console.log(response);
});
}
return done.resolve();
}
しかし、6 ページすべてが完了した後で resolve() を返す方法がわかりません。