Поток данных PHP to JS?

Подскажите пожалуйста как можно получать поток данных из одного php скрипта для getJSON(jQuery).

Мне нужно что бы php скрипт не ждал пока полностью закончит работу на сервере и отправит данные в json формате, а постоянно в цикле отправлял данные но при этом сам продолжал работу. А javascript разбирал поток и расфасовывал по ячейкам…

Аналог: php скрипт закончил обработку одного цикла, получил данные, отправил их с переменной (again), что значит вызывай меня еще раз я не закончил, javascript получил данные, расфасовывает и проверяет, если переменная равна 'again' вызывает еще раз json.php. Но данная реализация не совсем правильная. Мне нужно оптимизация скорости.

У кого какие идеи?
  • Вопрос задан
  • 4733 просмотра
Пригласить эксперта
Ответы на вопрос 4
Fesor
@Fesor
Full-stack developer (Symfony, Angular)
caniuse.com/websockets в качестве клиента
php.net/manual/en/book.sockets.php + многопоточность (pthread) или мультиплексирование (socket_select и в ту сторону).

если писать именно сервер лень — можно просто посылать ответ кусками и руками его обрабатывать на стороне клиента.
Ответ написан
blo
@blo
инженер-программист
nazarpc
@nazarpc
Open Source enthusiast
Вот пример серверного кода, который выдает контент по мере поступления:

https://github.com/nazar-pc/CSTester/blob/master/src/nazarpc/CSTester.php#L240

str_repeat(' ', 1024 * 64)

Код выше форсирует наполнение и сброс буфера, иначе не всегда новые порции будут возвращаться сразу. Можете разделять порции переводом строки — тогда отдельные части можно будет обнаружить и распарсить.

По поводу клиентской част почитайте http://stackoverflow.com/questions/7740646/jquery-ajax-read-the-stream-incrementally
Ответ написан
Ваш ответ на вопрос

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

Войти через центр авторизации
Похожие вопросы