Для более или менее точной отчетности о прогрессе у вас есть два варианта:
- Держите сервер, сообщая вам о своем прогрессе
- Держите клиента (браузера), спрашивающего сервер о его продвижении
Отслеживание прогресса на сервере будет довольно простым. Вместо вызова Ajax.Updater
вы можете создать элемент iframe
и изменить сервер таким образом, чтобы для каждой итерации выводить ответ с использованием некоторого JavaScript, чтобы вызвать отображение прогресса в браузере и сбросить этот ответ. Таким образом, браузер выполнит javascript и будет ждать окончания ответа, поэтому пользователь увидит, что индикатор прогресса движется вверх, пока все не будет завершено.
Для сервера доступны другие подходы, чтобы сообщить вам о ходе операции. Вы можете Bing / Google о Comet серверах .
Что касается того, чтобы браузер периодически запрашивал ход выполнения операции, вы можете либо возвращать некоторый токен браузеру для каждой итерации, которую браузер будет проверять, чтобы увидеть, является ли это конечным результатом, или он должен передать его на сервер. поэтому сервер продолжает нажимать на твиттер для следующего результирующего набора или каким-либо образом сохранять состояние (если у вас есть поддержка состояния сеанса, которое может это сделать) на вашем сервере, которое обновляется на каждой итерации и которое можно опрашивать по отдельному запросу.
Я надеюсь, что предложения помогут.