我在when then函数中有一个包含多个ajax调用的数组,并希望在每次调用之前显示一个preloder或一个文本。
在我想要展示的每个电话之前说: “处理任务ID 1 ......”然后完成 “处理任务ID 2 ......”等等,直到它被清除为止。
我尝试在ajax调用上使用beforeSend,但始终显示第一个id为1。 任何想法?
var ids = [1, 2, 3, 4, 5]; // task ids
var deferreds = [];
//
$.each(ids, function(i, id_task){
deferreds.push(
$.ajax({
type: "POST",
url: '/tasks/import',
data: $.param({id_task: id_task}),
headers: {'Content-Type': 'application/x-www-form-urlencoded'},
// always displaying "processing task id 1..."
beforeSend: function(){
$('#iter_msgs').html("processing task id " + id_task + "...");
}
//
})
.success(function(response){
// more stuff
})
);
});
//
$.when
.apply($, deferreds)
.done(function(a) {
//
$('#iter_msgs').html('')
});
到目前为止,我希望达到以下效果,但是使用时间,然后:
//
var id_task = 1;
$('#iter_msgs').html("processing task id " + id_task + "...");
//
$.ajax({
type: "POST",
url: '/tasks/import',
data: $.param({id_task: id_task}),
headers: {'Content-Type': 'application/x-www-form-urlencoded'}
})
.success(function(response) {
$('#iter_msgs').html("");
});