Как заставить скрипт порциями выдавать контент в браузер?

Mols

Новичок
Страшный Злодей
Зачем скрывал.?
Вот сказал...
nginx ничего не отдаст пока не получит целиком
так что смысла нет
Просто никто не увидел. И я в том числе.
 

slva2000

Новичок
Мне помогли решить вопрос два варианта (любой из):
(при условии, что nginx работает фронендом)

1.
php.ini
output_buffering = Off
;output_handler =
zlib.output_compression = Off
;zlib.output_handler =

2.
Обращение к домену напрямую, минуя nginx. У меня это настроено на 81 порт, поэтому вызов вида http://site.ru:81/script.php выводит на экран все эхи мгновенно, как на денвере :)

Если особо кому надо, могу посмотреть настройки Апача для вирт. хоста.

Надеюсь не зря регался, спасибо за внимание.

офтоп: кое как зарегался, письмо на гмэйл шло 3 дня. Тема по запросу flush nginx - первая в гугле, поэтому решил поднять. :)
 

Adelf

Administrator
Команда форума
slva2000
Сервер дома - это не то, что немодно, это изврат.

И да, "обработчик php" и Apache - малосвязанные понятия.
 

ksnk

прохожий
А старый добрый способ "добивать пробелами до 1к, чтобы все отправилось", не пробовался? Если отсылается html, то можно оформлять длинный комментарий.

В смысле, при организации iframe'ового коммет-канала первый чих сервера добивается до 1к пробелами, чтобы старые IE спокойно сожрали порцию данных. Каждый последующий чих, уже и так до них доходил. Ну и фрейм открывался с
PHP:
header('Connection: keep-alive');
чтобы не приходило кому-то в голову подставить-дожидаться заголовка с размером файла. Может и nginx на этот заголовок отреагирует разумно и не будет тормозить отдачу?
 

slva2000

Новичок
Не, народ, эти все способы пройдены. Nginx ждёт окончания по длине данных. Если они не закончились, он всё ждёт. Такой уж принцип.
sleep(); точно не туда.

hell0w0rd
Какая разница чем отрываем соединение? Сформировать заголовки и в курле можно
 

hell0w0rd

Продвинутый новичок
hell0w0rd
Только AJAX...?
Не люблю, ни как не могу полюбить...
сокеты никак к ajax запросам не относятся.
Сокеты - открываешь соединение и не закрываешь, туда может что-то клиент писать, что-то сервер писать и так пока один не оборвет соединение.
Ajax запрос - простой http запрос. Он никак не отличается от любого другого запроса. Все его отличие в том, что обычно браузер отсылает его невидимо для пользователя.
Самое простое в этом случае сделать так, чтобы приложение понимало, что нужно подождать и отсылало запросы каждые 5 сек например, а юзеру показать заставочку. Чтобы посмотреть как это работает - посмотрите какие-нибудь сайты по поискам путевок например, у них как раз подобная задача и переодически поиск занимает время
 
Сверху