2013-09-27 10 views

risposta

17

Prima outputing nulla sulla pagina tiro in questo:

ob_start("ob_gzhandler"); 

Poi, dopo la tua contenuti seguire con:

ob_end_flush(); 

e il contenuto sarà essere compressi con gzip

+0

Grazie mille . ha ridotto un terzo delle dimensioni dei miei dati. – harishkumar329

+2

Come ra_htial menzionato si preferisce usare 'zlib.output_compression' piuttosto che' ob_gzhandler', come raccomandano i documenti php.net, inoltre non dimenticare di usare 'ob_end_flush();' alla fine dell'output. –

+0

zlib funziona anche, ma comprime tutte le richieste su quel sito finché il browser lo supporta. Anche se potrebbe essere l'ideale nella maggior parte dei casi, questa era una domanda per affrontare la dimensione della risposta ajax. – Chausser

10

Opzione 1 :

configu Re zlib.output_compression nel vostro php.ini

Doc: http://www.php.net/manual/en/zlib.configuration.php#ini.zlib.output-compression

Opzione 2:

Usa: ob_gzhandler

Doc: http://php.net/manual/en/function.ob-gzhandler.php

Nota:

900Kb è troppo per una risposta ajax.

+0

+1 a 900Kb essendo troppo grande per AJAX. Funzionerà, ma probabilmente dovresti provare a ripensare il tuo meccanismo di consegna. –

+0

Sì, ora ho ridotto a 300kb. E di nuovo ho usato l'idea di Chausser e ho ottenuto 93,7kb di dimensione. Ora sta funzionando alla grande. – harishkumar329

1

Se non è possibile aggiornare il file di configurazione prima di utilizzare php.iniob_gzhandler() si potrebbe provare anche questo:

ini_set('zlib.output_compression', 1); 
+0

Questa è la migliore risposta. Non richiede di controllare che l'estensione zlib sia installata. – alexg

Problemi correlati