Нужно построить приложение, в котором вызовы 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+''); }); } }
Комментариев нет:
Отправить комментарий