Проблема с flush()

darkwiz

Новичок
Проблема с flush()

Почему-то сообщения не выводятся. flush() не помогает. Ради интереса перед flush() поставил ob_flush() (я знаю как она используется, но поставил ради эксперимента)... Так вместе с ошибками (т.к. не было ob_start() ) стали и сообщения появляться. Убрал ob_flush() и сообщения опять не выводятся. В чем может быть проблема?

Примерный код здесь.
PHP:
 while(1==1) 
  { 
 
    $new_mess=mysql_query("SELECT * FROM `mess`");
    $new_mess_rows=mysql_num_rows($new_mess);
    for($i=1; $i<$new_mess_rows; $i++)
     {
        $new_mess_v[$i]=mysql_fetch_array($new_mess);
        echo $new_mess_v[$i]['aut_name'].' '.$new_mess_v[$i]['text'].'<br>';
        flush();
     }
          

      sleep(5);
  }
 

Апокалипсис

тех дир matras.ru
Некоторые версии Microsoft Internet Explorer начинают отображать страницу только после получения 256 байт вывода, поэтому вам может понадобиться отправить дополнительные пробелы перед очисткой, чтобы такие браузеры вывели страницу.

-~{}~ 22.11.06 01:31:

Может в этом дело?
 

darkwiz

Новичок
Апокалипсис да, действительно. Вывел в цикле неск. комментариев и все заработало! Прикол :)
 

AmadMike

Новичок
darkwiz, все-таки это очень ужасно вот так вот гонять бедный скрипт в бесконечном цикле. Хостер, я уверен, не будет в большом восторге от подобного. Когда-то давно, подобная тема обсуждалась на форуме. А sleep в данном случае не так уж и сильно уменьшает нагрузку.
В любом случае, чат лучше всего делать со своим собственным многопотоковым демоном, такой подход позволяет спокойно держать до нескольких тысяч человек, а процессы с бесконечным циклом могут просто положить сервак.
А если количество человек не будет очень большим, то самый лучший вариант - создание простого чата с обновлением.
 
Сверху