2010-11-20 3 views
8

Ich bemerkte, dass die php flush(); funktioniert nicht in Firefox 4 Beta 7, da es in 3.6.12 funktioniert.flush() funktioniert nicht in Firefox 4

Ich habe vor kurzem Firefox 4 Beta 7 installiert, und der Inhalt wird nicht sofort flush, wenn flush() aufgerufen wird. Früher hat es in 3.6.12 funktioniert. Gibt es etwas anderes, das mir die Spülfunktionalität bieten könnte?

Ich habe

versucht
flush(); 
@ob_flush(); 

Ich habe auch versucht den folgenden Code am oberen Rand der Seite.

@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); 

Übrigens, ich benutze PHP auf XAMPP/Apache. Vielen Dank.

Ich fand, dass die Einstellung Inhaltstyp zu Text/plain funktioniert, aber es gibt nur Text und nicht HTML-Inhalt.

+0

Vielleicht ist die Technik, die in dieser Frage angezeigt werden, können Sie auf Ihrer Suche http helfen:.//stackoverflow.com/questions/4191349/php-buffer-why-rn –

Antwort

1

flush funktioniert identisch serverseitig unabhängig vom Browser. Wenn der Client die Dinge anders anzeigt, können Sie serverseitig nicht viel tun, um ihn zu beheben.

+0

Gibt es etwas, was ich auf dem Client tun kann. Wie ich bereits erwähnt, es funktionierte gut in Firefox 3.6.12, aber nicht in Firefox 4 Beta 7 – Ctroy

+0

@Ctroy 'flush' ist nicht Ihr Problem, was macht Sie denken, es ist? – meagar

+0

Ich habe diese PHP-Seite, die ich lokal ausführen, die einige Verarbeitung verarbeitet. Ich gebe während der Verarbeitung etwas Inhalt auf der Seite aus, von dem ich möchte, dass sie erscheinen, sobald ich sie auf meiner Seite "echo". – Ctroy

6

Sie sehen keine Geister - ich habe den gleichen Unterschied zwischen FF3.6 und FF4 erlebt.

Hier ist eine Arbeit um: eine

echo str_repeat(" ", 1024); 

vor dem Ausgang hinzufügen, die ausgespült werden muss. Sie können es zum Beispiel in die <Kopf> setzen.

Meine Theorie ist, dass FF4, wie scheinbar IE und Safari, einen kleinen Puffer haben, die vor dem inkrementellen Rendering Kicks gefüllt werden muss