Нужно построить приложение, в котором вызовы Ajax будут вложены в друг друга заданное количество раз, а параметры последующих запросов будут задаваться в зависимости от номера вложенности. При этом запросы к серверу должны идти последовательно, один за одним.
Если не возможно использовать синхронные запросы (
Если не возможно использовать синхронные запросы (
$.ajaxSetup({async:false});) в силу разных причин (использования jsonp, выполнения других запросов в ajax в это же время или в силу блокировок браузера), то нужно использовать "Отложенный объект", а точнее функцию jQuery.then(). Реализация кода может быть следующей:var args = ['arg1','arg2','arg3','arg4','arg5','arg6'];
deferredPost(0, 5);
function deferredPost(index, max){
var delay = Math.random()*3;
if (index < max){
return $.post('/echo/html/', {html:('Response to '+args[index]), delay:delay},
function(data){
$('#response').append(data+'');
}).then(function(){
deferredPost(index+1, max);
});
} else {
return $.post('/echo/html/', {html:('Response to '+args[index]), delay:delay},
function(data){
$('#response').append(data+'');
});
}
}
Комментариев нет:
Отправить комментарий