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

Р
На сайте с 17.05.2011
Offline
136
957

Предыстория такова: пока скрипт работал на удаленном сервере - страничка, генерируемая медленным скриптом показывалась в браузере по мере выполнения скрипта. Потом я поставил себе Open Server (это WAMP) и этот же самый скрипт стал выдавать результат только после того, как закончил свое выполнение.

Ума не приложу куда бежать и где искать настройку, отвечающую за это дело...

дани мапов
На сайте с 06.09.2012
Offline
204
#1

Настройку не знаю (вроде в php.ini - output_buffering и implicit_flush), может в скрипте попробовать flush();

Код:


for($i=0; $i<15; $i++) {
echo $i.'<br/>';
flush();
sleep(1);
}
Написание и доработка скриптов (PHP, MySQL, JavaScript, jQuery) (/ru/forum/811046)
Р
На сайте с 17.05.2011
Offline
136
#2
дани мапов:
Настройку не знаю (вроде в php.ini - output_buffering и implicit_flush), может в скрипте попробовать flush();

Код:

for($i=0; $i<15; $i++) {
echo $i.'<br/>';
flush();
sleep(1);
}

Что-то не помогло.

Настройки, которые вы указали - в положении off (обе).

Введение flush() не помогло, все равно скрипт выдает столбик чисел в самом конце. Может, все-таки, браузер виноват?

Хотя, этот же скрипт выполняемый на удаленном сервере работает нормально. Может дело в localhost?

UPD: только что попробовал Mozila Fire Fox: тот же результат... :(

дани мапов
На сайте с 06.09.2012
Offline
204
#3

Попробуйте перед flush поставить:


echo ’<!– –><!– –>‘;//количество <!– –> варьируем по своему усмотрению (больше 10)
Р
На сайте с 17.05.2011
Offline
136
#4
дани мапов:
Попробуйте перед flush поставить:

echo ’<!– –><!– –>‘;//количество <!– –> варьируем по своему усмотрению (больше 10)

Не помогло :(

Вот код:


for( $i=0; $i<10; $i++ )
{
echo "$i<br />\n";
echo '<!– –><!– –><!– –><!– –><!– –><!– –><!– –><!– –><!– –><!– –><!– –><!– –>';
flush();
sleep( 1 );
}
Р
На сайте с 17.05.2011
Offline
136
#5

Подниму свой вопросик. Ибо я продолжаю бороться с этой проблемой.

За одно дополню.

Если в начало скрипта поставить phpinfo(), то работает как надо: сразу выдается большая таблица, потом по одному числу каждую секунду.

Но если phpinfo стоит в конце, то работает так - как я описал выше.

Кстати, выдача phpinfo во такая: http://yadi.sk/d/GDQEpw6j2IOkl (мало ли что-то в параметрах откопаете)...

Спасибо заранее!

Милованов Ю.С
На сайте с 24.01.2008
Offline
196
#6


for( $i=0; $i<10; $i++ )
{
echo "$i<br />\n";
flush();
sleep(1);
}

В .htaccess суем:


php_value output_buffering 0
php_flag implicit_flush Off

Все работает. И не надо перед кодом писать phpinfo():)

Подпись))
SI
На сайте с 03.12.2007
Offline
130
#7

Open Server? Если там Nginx перед Apache, то он и кеширует.

-= Онлайн сервисы =-
Р
На сайте с 17.05.2011
Offline
136
#8

Милованов Ю.С, Добавил. Но что-то не сработало :(

---------- Добавлено 08.02.2013 в 12:09 ----------

Sigmo#ID:
Open Server? Если там Nginx перед Apache, то он и кеширует.

Нет, кажись Апач. А как проверить?

UPD. Посмотрел в настройках OpenServer:

Вроде Апач выбран...

forest25
На сайте с 12.09.2009
Offline
67
#9

Эм..., а может не стоит тратить время на настройку Open Server? Оно же только для разработки используется. На удаленном сервере все равно будут немного другие настройки не говоря уж о ПО =)

VPS 512MB 20GB SSD KVM - 5$ (http://u.hmdw.me/digitalocean) | ИМХО о хостингах (http://u.hmdw.me/hosting)

Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий