php Буферизация вывода

lutskboy
На сайте с 22.11.2013
Offline
192
516

Здравствуйте

есть код



header('X-Accel-Buffering: no');
header('Content-Encoding: none;');
ini_set('output_buffering', 'Off');
ini_set('output_handler', '');
ini_set('zlib.output_handler','');
ini_set('zlib.output_compression', 'Off');
ini_set('implicit_flush', 'On');
while (ob_get_level()) { ob_end_flush(); }
ob_implicit_flush(true);
echo str_repeat(' ', 4096);

for($i = 1; $i < 11; $i++ )
{
sleep(1);
echo '<p>Это очередное обновление данных № '.$i.'</p>' ;
flush();
}

он по идеи должен как бы выводить данные по мере их появления. но работает как то в хроме через раз

в старой опере 12 и то нормально. в мозилла тоже

пробовал разные варианты Буферизации вывода но что то не всегда гладко и на разных хостингах ведет себя по разному

у кого то есть идеальное решение?

LEOnidUKG
На сайте с 25.11.2006
Offline
1774
#1

Nginx стоит?

✅ Мой Телеграм канал по SEO, оптимизации сайтов и серверов: https://t.me/leonidukgLIVE ✅ Качественное и рабочее размещение SEO статей СНГ и Бурж: https://getmanylinks.ru/ ✅ Настройка и оптимизация серверов https://getmanyspeed.ru/
lutskboy
На сайте с 22.11.2013
Offline
192
#2

мне нужно универсальное решение

не только для Nginx или Apache

хотя б работало корректно на большинстве хостингов

LEOnidUKG
На сайте с 25.11.2006
Offline
1774
#3
lutskboy:
мне нужно универсальное решение
не только для Nginx или Apache
хотя б работало корректно на большинстве хостингов

С nginx не будет работать т.к. там у него буферы настроены и доступа у вас к ним не будет.

Если вам нужно универсальное решение, тогда пишите данные в файл, и по таймеру тягайте файл через ajax

O
На сайте с 29.05.2008
Offline
195
#4
lutskboy:
он по идеи должен как бы выводить данные по мере их появления. но работает как то в хроме через раз
в старой опере 12 и то нормально. в мозилла тоже

Если скрипт работает, как вы ожидаете в старой опере 12/мозилле, значит настройка на стороне сервера корректная.

В Chromium с пятьдесят какой-то версии, реализована умная прорисовка страницы.

Суть в том, что браузер пробует высчитать высоту блоков/страницы, чтобы предотвратить скачки по мере загрузки на мобильных.

Например, когда вы начинаете читать статью на EDGE интернете на мобильном, пролистали уже к середине, и тут наконец-то загрузилась реклама из блока выше, и все подскакивает вниз.

Одним словом, это буферизация конкретно Blink движка.

Оптимизайка
На сайте с 11.03.2012
Offline
396
#5
lutskboy:
мне нужно универсальное решение

Websockets, Event Source.

⭐ BotGuard (https://botguard.net) ⭐ — защита вашего сайта от вредоносных ботов, воровства контента, клонирования, спама и хакерских атак!

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