Вы можете использовать $.when()
/ $.then()
для перенаправления пользователей после выполнения всех запросов AJAX:
//create array to hold deferred objects
var XHRs = [];
$('#tabCurrentFriends > .dragFriend').each(function(){
var friendId = $(this).data('rowid');
//push a deferred object onto the `XHRs` array
XHRs.push($.ajax({
type: "POST", url: "../../page/newtab.php", data: "action=new&tabname=" + tabname + "&bid=" + brugerid + "&fid=" + friendid,
complete: function(data){
}
}));
});
//run a function when all deferred objects resolve
$.when(XHRs).then(function (){
window.location = 'http://stackoverflow.com/';
});
Редактировать - использовать when
с массивом, apply
необходимо использовать:
$.when.apply(null, XHRs).then(function () {
window.location = 'http://stackoverflow.com/';
});
jQuery AJAX-запросы создают отложенные объекты, которые разрешаются при срабатывании их полной функции.Этот код сохраняет эти отложенные объекты в массиве, и когда все они разрешают, запускается функция в .then()
.
Документы: