Информация о процессе на экране в реальном времени

Рейтинг: 0Ответов: 1Опубликовано: 12.11.2014

Здравствуйте.
Подскажите, пожалуйста, как можно сделать отображения на сайте какого-либо процесса на сервере?
Пусть для примера будет обычный цикл:

foreach (range(1, 100) as $number) {
    echo $number;
    sleep(1);
}

Возможно ли через JS (jQuery) сделать вывод этих чисел в реальном времени?

Ответы

▲ 2Принят

Самое простое: cделайте на сервере ручку, которая будет возвращать текущий прогресс, и периодически ее дергайте со странички.

Обновление

Что вы понимаете под файлом? CGI скрипт? Тут сильно зависит от того, какая у вас архитектура клиент-серверного взаимодействия. Например, сихронно ли выполняется задача (с точки зрения клиента). Можно сделать так: есть скрипт, который запускает задачу. При обращении к нему задаче присваевается уникальный id, который возвращается клиенту. Задача периодически записывает в файл с именем, например, /tmp/progress_{id} текущий прогресс. Есть другой скрипт, который принимает id как параметр, и возвращает содержимое этого файла. Через этот скрипт клиент и узнает о текущем прогрессе.