2010-11-20 2 views
8

Я заметил, что php flush(); не работает в Firefox 4 beta 7, так как он работает в 3.6.12.flush() не работает в Firefox 4

Недавно я установил firefox 4 beta 7, и содержимое не будет немедленно очищено при вызове flush(). Он отлично работал в 3.6.12. Есть ли что-то еще, что могло бы дать мне возможность промывки.

Я попытался

flush(); 
@ob_flush(); 

Я также попытался следующий код в верхней части страницы.

@apache_setenv('no-gzip', 1); 
@ini_set('zlib.output_compression', 0); 
@ini_set('implicit_flush', 1); 
for ($i = 0; $i < ob_get_level(); $i++) { ob_end_flush(); } 
    ob_implicit_flush(1); 

Кстати, я использую php на XAMPP/Apache. Благодарю.


Я обнаружил, что настройка типа содержимого в текстовое/обычное работает, но он просто выводит обычный текст, а не содержимое html.

+0

Возможно, отображаемый в этом вопросе метод может помочь вам в вашем поисках HTTP:.//stackoverflow.com/questions/4191349/php-buffer-why-rn –

ответ

1

flush будет функционировать идентично на стороне сервера независимо от браузера. Если клиент отображает вещи по-другому, вы не можете сделать серверную часть, чтобы исправить ее.

+0

Есть ли что-то, что я могу сделать на клиенте. Как я уже упоминал ранее, он отлично работал в firefox 3.6.12, но не в firefox 4 beta 7. – Ctroy

+0

@Ctroy 'flush' не ваша проблема, что заставляет вас думать, что это так? – meagar

+0

У меня есть эта страница php, которую я запускаю локально, которая выполняет некоторую обработку. Я вывожу некоторое содержимое на страницу во время обработки, которое я хочу, чтобы они появились, как только я «эхо» их на моей странице. – Ctroy

6

Вы не видите призраков - я испытал ту же разницу между FF3.6 и FF4.

Вот работа вокруг: добавить

echo str_repeat(" ", 1024); 

перед выходом, который должен быть очищен. Вы можете положить его, например, в головку < >.

Моя теория состоит в том, что FF4, как очевидно IE и Safari, есть небольшой буфер, который должен быть заполнен, прежде чем инкрементные пинки рендеринга в