Обновлено: самый надежный способ использования Ajax - считать каждый запрос Ajax атомарным: работает или нет.
И вы (JS, работающий на странице) действительно не получаете никакой обратной связи, поскольку ваш запрос выполняется. Так что вам нужно несколько звонков. Но будь осторожен! Слишком много накладных расходов на вызов, и большинство браузеров будут выполнять только один или, может быть, два одновременно.
Я предлагаю использовать индикатор занятости для человека. Вы также можете показать часы обратного отсчета, которые обновляются не реже двух раз в секунду, чтобы казалось, что что-то происходит.
Добавлено:
Вы также можете реорганизовать свое решение. Например, рассматривать процесс обновления как пакетное задание, которое Ajax запускает, отправляя запрос. Затем выполните Ajax-вызовы, чтобы узнать (а затем) отобразить ход выполнения пакетного задания для человека.
Можно использовать комету и другие «стратегии открытия трубопровода», но они трудны для надежной работы и имеют тенденцию использовать много ресурсов. Более пешеходный метод опроса может быть намного легче начать. Затем оптимизируйте при необходимости.