2009-02-25 3 views
3

Я хотел бы получить рекомендации относительно того, как реализовать следующее:AJAX Progress Bar - опрос, комета?

Я хочу, чтобы мои пользователи знали о ходе выполнения задачи, выполняемой на моем сервере через AJAX. Мой сервер запускает скрипт PHP, который загружает файл через команду оболочки с помощью функции popen. Он периодически эхо/печатает, что происходит. Я хотел бы захватить этот вывод с помощью AJAX и представить его пользователю.

Мне сказали в другом вопросе, что мне может понадобиться опрос или комета? Я был бы очень признателен за любую помощь или руководство относительно того, как добиться этого самым простым и эффективным способом. Надеюсь, я все еще могу использовать JQuery.

Спасибо, что нашли время, чтобы прочитать это.

P.S. Я смог добиться этого благодаря сообществу stackoverflow. :)

ответ

2

Это звучит как отличная возможность для Ajax long polling, который является одним из множества методов, используемых в общих реализациях комет. Есть another question on Stack Overflow с образцом кода.

+0

Спасибо! Сделал использование этой техники ... достаточно близко, чтобы ее работала. :) – Abs

1

Я бы использовал обычный опрос вместо кометы, так как это больше похоже на взлома. Чтобы сделать UI более жидким, вы можете обмануть и обновить индикатор выполнения без проверки с сервером, просто вычислив среднее время, необходимое для выполнения задачи. Вы можете исправить ошибку путем опроса для правильного состояния. Если вы это хорошо реализуете, каждый будет думать, что это живое обновление.

2

Ссылка Джим Пулс - отличное место для начала. Многие пользователи в этих вопросах предлагают много отличной информации о опросе комет & PHP. Большинство мест, которые я видел, рекомендовали использовать python, чтобы выполнить эту задачу.

Кроме того, вот несколько ссылок на:

Responsive AJAX applications with COMET

A Progress Bar in Jquery

And Another HTTP Streaming AjAx Pattern Article

я бы, вероятно, пойти по пути GS, упомянутые в конце концов в зависимости от того, как "необходимой" прогресса бар есть. Если это просто функция, помогающая пользователю понять, что она занимает немного больше времени, чем обычно, чтобы обрабатывать, то «обманывать» их с оценкой намного проще, чем в прямом опросе.