我需要同时使用不同的参数加载同一页面 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();
}
但我不知道如何在完成六页后返回 resolve()。