Задать вопрос
padonnak
@padonnak

PHP постоянный обмен при исполнении кода?

Всем привет, хочу сделать постоянный вывод оповещений при работе скрипта.
Пример:
отправили пост запрос через js он вернул результат только 1 раз, а у меня работает foreach в php и при каждом завершении цикла я хочу получать результат, какими средствами это можно реализовать? Только websocket ? или есть какой то обработчик получения return ?
  • Вопрос задан
  • 223 просмотра
Подписаться 1 Оценить Комментировать
Решения вопроса 1
@MadridianFox
Web-программист, многостаночник
отправили пост запрос через js он вернул результат только 1 раз

Это естественно. Протокол HTTP именно так и устроен: запрос - ответ. Причём ответ сначала вычисляется, а затем отправляется клиенту.
у меня работает foreach в php и при каждом завершении цикла я хочу получать результат

Как уже написано выше - сначала код полностью отрабатывает, а потом результат отправляется клиенту. Вы не можете отправить клиенту данные и продолжить работу используя HTTP.
или есть какой то обработчик получения return ?

Нет.

В итоге остаётся всего несколько решений.
1) WebSocket
2) Server Sent Events
3) Comet

Однако. Все эти решения требуют глубокой переработки вашего приложения, и просто добавить кусочек кода в имеющийся цикл не получится.
Ответ написан
Пригласить эксперта
Ответы на вопрос 3
@entermix
Можно прикрутить comet сервер, или записывать промежуточные результаты в хранилище и уже оттуда дергать скриптом.
Ответ написан
Комментировать
proudmore
@proudmore
Что значит "вернул результат только 1 раз"? У меня подозрение, что вашу проблему можно решить архитектурно, а не асинхронностью.
Ответ написан
Pinsky
@Pinsky
Кофеиноникотиновая смесь в backend-код
Посмотрите в сторону Server Side Events
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы