Я разрабатываю проект, который должен обрабатывать вызовы ajax последовательным образом. Код у меня есть что-то вроде:Последовательное выполнение js
for(var j=0; j<3;j++) {
$.ajax({
url:url[j],
async:false
}).done(function(result){
var data = result.data;
for(var i=0; i < data.length;i++){
analyses += "<div><div id=\"" + data[i] + "\" class=\"module\">";
analyses += "<br/>Analysis : " + data[i] + "<br/>";
analyses += "</div></div>";
$("#analysesPlaceHolder").html(analyses);
}
});
}
Однако, теперь он просто случайным образом выбирает URL из списка (иногда это первое, иногда это не так). Как сделать выполнение последовательным, чтобы код сначала выполнял первый вызов ajax, затем второй и т. Д.
Ваш вызов '$ .ajax' является синхронизацией, так как вы указываете' async: false', а также вы берете URL-адрес из 'array', который вы зацикливаете по порядку ... вероятно, проблема« случайно » в той части, где вы создаете массив 'url'. – albciff
Возможно, '$ .when' то, что вы хотите ... посмотрите здесь http://api.jquery.com/jQuery.when/ –