Существует нечто, называемое comet
, которое вы можете настроить для «проталкивания» запросов клиенту, однако это, вероятно, намного больше, чем вы хотите инвестировать, с точки зрения времени.
Вы можетеоткрыть постоянный поток с сервера, чтобы он продолжал выводить данные, однако я не уверен, как сценарий на стороне клиента может обрабатывать их как отдельные «сообщения».Думайте об этом как о сервере, который выводит некоторую информацию в браузер, выполняет больше работы, выводит еще больше в браузер, выполняет больше работы и т. Д. Это отображается более или менее в реальном времени для браузера в виде печатного текста.Это один длинный ответ, но это все еще один ответ.Я думаю, что ajax обрабатывает ответ только после того, как он закончил отправку, но, возможно, кто-то еще узнает больше, чем я, по этой теме.
Но вы не могли бы заставить сервер выводить несколько отдельных ответов без перезагрузки, по крайней мере,не с PHP, потому что, как только вы начинаете выводить ответ, ответ начинается, и вы не можете его разбить, не завершив ответ, что происходит, когда завершается выполнение скрипта.
Лучше всего делать сустойчивый поток, но опять же, я не уверен, как ajax обрабатывает получение ответов в чанках.
Быстрое обновление
Основано на примечаниях для этого плагина:
[http://plugins.jquery.com/project/ajax-http-stream]
вещи не выглядят многообещающими.В частности:
Очевидно, что тенденция состоит в том, чтобы запретить доступ к xmlhttprequest.responseText до завершения запроса (глупо, imo).Извините, я ничего не могу сделать, чтобы исправить это
Таким образом, вы не только не можете получить то, что вы хотите в одном запросе, вы, вероятно, не можете получить его несколько запросов, если вы не хотите разбитьфактический процесс на стороне сервера на несколько частей, и он может перейти к следующему шагу только тогда, когда его запускает функция ajax.
Другой вариант - ваш сценарий записывает свое состояние в определенных точках в другой файлсервер, назовите его «status.xml» или «status.txt».Пусть ваша первая функция ajax инициализирует процесс, а вторая функция ajax запрашивает этот файл состояния и выводит его пользователю.