Здравствуйте уважаемые. Имеются несколько трудоемких и долгих задач, а именно - построение отчетов. Выполняться задача может несколько часов. Серверная часть реализована на PHP. Проблема вот в чем - при запуске построения отчета с web-сервера скрипт крутится на сервере и не подает признаков жизни вплоть до окончания выполнения. То есть, пока отчет не построен, узнать, что там да как - нельзя.
Поэтому я разбиваю построение отчета на элементарные операции, т.е. обращаюсь снова и снова к серверному скрипту посредством AJAX-запроса, который возвращает промежуточные результаты, и хочу показывать их клиенту, или посредством progress-бара, или еще как-нибудь, не важно. В связи с чем образуется конструкция:
Код:
function get_dates()
{
$.post( "/services/journal/reports/ws.php",
{ cmd: 'get_month_dates' },
function(data) {
eval(data);
// по каждой дате
$.each( days, function() {
var rep = $.ajax({
type: "POST",
async: false,
url: "/services/journal/reports/ws.php",
data: "cmd=get_day_otiz_report&day=" + this
}).responseText;
$("#mreport").append('<p>Сформирован отчет: ' + this + '</p>');
});
prepare();
}
);
}
Т.е. получаю в JS даты для отчета, и по окончанию обработки каждой даты вывожу результат клиенту.
Но клиент результат видит только по завершению формирования всего отчета.
Причину выяснить не могу, помогите!