Задать вопрос
cyberia
@cyberia
Веб-разработчик, плавно перехожу в мобильные разра

Вывод сообщений в реальном времени (JS + PHP)?

Как организовать вывод сообщений в браузер в реальном времени? Объясню по-подробнее: есть скрипт на php, который делает некоторые долгие операции с базой данных. Пользователь набирает его адрес в строке браузера, жмет Enter, и спокойно курит минут 30-40. Но хотелось бы чтобы он видел прогресс, хотелось бы выводить ему сообщения об операции по каждой позиции



[42 / 89300] Позиция #327 найдена, существует в системе, данные актуальны.<br/>
[43 / 89300] Позиция #21 найдена, существует в системе, данные актуальны.<br/>
[44 / 89300] Позиция #532 найдена, в системе не обнаружена, добавленна только что.<br/>


в таком духе.



Но тут возникает несколько вопросов, ответов на которые я не нашел.

  1. Можно использовать flush в php для очистки буфера вывода, но Apache с gzip`ом все равно будет кешировать, как его отключать программно — представления не имею.
  2. Если использовать AJAX, то я так понимаю колбек-функция заработает только когда все данные придут, как выводить тоже непонятно.


Может кто подсказать в какую сторону копать?
  • Вопрос задан
  • 6814 просмотров
Подписаться 9 Оценить Комментировать
Ответ пользователя Антон Корзунов К ответам на вопрос (9)
kashey
@kashey
Программирую большую половину жизни
Вы почти правы — нужен периодический flush на стороне сервера.
А как заставить сервер передавать ответы gzipнутыми кусочками?
Либо можно изменить content-type на такой который не будет ловиться апачем и не згипаться, либо просто попросить chunked вариант трансфера данных.
Ответ написан
Комментировать