2010-11-20 21 views
8

Ho notato che lo php flush(); non funziona in Firefox 4 beta 7, come funziona in 3.6.12.flush() non funziona in Firefox 4

Ho recentemente installato firefox 4 beta 7 e il contenuto non viene scaricato immediatamente quando viene chiamato flush(). Funzionava benissimo in 3.6.12. C'è qualcos'altro che potrebbe fornirmi la funzionalità di lavaggio.

Ho provato

flush(); 
@ob_flush(); 

Ho anche provato il seguente codice nella parte superiore della pagina.

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

A proposito, utilizzo php su XAMPP/Apache. Grazie.


ho trovato che l'impostazione di tipo di contenuto text/plain opere, ma appena uscite di testo e non il contenuto HTML.

+0

Forse la tecnica mostrata in questa domanda può aiutare nella tua missione http:.//stackoverflow.com/questions/4191349/php-buffer-why-rn –

risposta

1

flush funzionerà identicamente lato server indipendentemente dal browser. Se il client mostra le cose in modo diverso, non c'è molto che tu possa fare sul lato server per risolverlo.

+0

C'è qualcosa che posso fare sul client. Come ho detto prima, funzionava bene in Firefox 3.6.12, ma non in Firefox 4 beta 7. – Ctroy

+0

@Ctroy 'flush' non è un tuo problema, cosa ti fa pensare che sia? – meagar

+0

Ho questa pagina php che eseguo localmente e che esegue qualche elaborazione. Eseguo l'output di alcuni contenuti sulla pagina durante l'elaborazione che desidero vengano visualizzati non appena li "echo" nella mia pagina. – Ctroy

6

Non si vedono i fantasmi: ho riscontrato la stessa differenza tra FF3.6 e FF4.

Ecco un modo per aggirare: aggiungere un

echo str_repeat(" ", 1024); 

prima che l'uscita che ha bisogno di essere svuotati. Puoi inserirla ad esempio nella testata < >.

La mia teoria è che FF4, come a quanto pare IE e Safari, hanno un piccolo buffer che deve essere riempito prima di calci di rendering incrementali in