PHP скрипт, который сообщает о прогрессе клиенту
Я пишу сценарий PHP, который выполняет много повторяющихся операций, и когда клиент выполняет его, я бы хотел, чтобы он каким-то образом отправлял обратно HTML, когда он выполняет задачи. (без AJAX?) Как это можно сделать?
4 ответа
Вы можете очистить выходной буфер, используя flush();
Так что-то вроде:
taskOne();
echo 'Task one finished';
flush();
...
Надеюсь это поможет.
Вам лучше просто опросить сервер через ajax. Установите скрипт, который может отслеживать ваши текущие задачи и опрашивать их. Таким образом, браузер пользователей не всегда находится в режиме загрузки, и они могут уйти со страницы и вернуться, если захотят.
Может быть, вы можете использовать тэг refresh-meta или HTTP-заголовок, например так:
header("Refresh: 3; URL=http://www.some.org/some.html");
Браузер обновится через 3 секунды. Если вы спросите меня, это может быть любопытно =) Было бы гораздо приятнее внедрить решение AJAX, но оно по крайней мере будет работать без излишней работы JavaScript.
Тогда вам нужно обновить сайт, так как PHP запускается только при каждом запросе страницы.