2013-09-27 17 views
11

ajax yanıtım çok büyük bir şekilde 900kb'dir. bu yüzden performansı artırmak için gzip ihtiyacım var.PHP yanıtı olarak gzip içeriği nasıl gönderilir

Lütfen herhangi bir kişi tarafından php adresinden gzipli içerik almama yardımcı olabilirsiniz.

Şimdiden teşekkürler.

+0

http://php.net/manual/en/function.gzcompress.php deneyin – Vishnu

cevap

17

bu sayfa atmada bir şey çıkış olanağı önce:

ob_start("ob_gzhandler"); 

Sonra içerikten sonra onu takip:

ob_end_flush(); 

Ve içerik gzip'lenmesi edilecektir

+0

çok teşekkürler . veri boyutumun üçte birini azalttı. – harishkumar329

+2

ra_htial'den bahsedildiği gibi, php.net belgelerinin önerdiği gibi 'ob_gzhandler' yerine' zlib.output_compression' kullanmak tercih edilir, ayrıca 'ob_end_flush(); 'çıkışının sonunda kullanmayı da unutmayın. –

+0

zlib de çalışır, ancak tarayıcı destekledikçe, bu sitedeki tüm istekleri sıkıştırır. Bu çoğu durumda ideal olsa da, ajax yanıt büyüklüğünü ele almak için bir soruydu. – Chausser

10

Seçenek 1 :

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

Seçenek 2:

Kullanım: ob_gzhandler

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

Not:

sizin php.ini

Doküman içinde zlib.output_compression yeniden Ajax yanıtı için

900Kb çok fazladır. Eğer ob_gzhandler() kullanmadan önce php.ini yapılandırma dosyası güncelleyemiyorsanız

+0

+1 - 900Kb AJAX için çok büyük. Çalışacak, ancak muhtemelen dağıtım mekanizmanızı yeniden düşünmeyi denemelisiniz. –

+0

Evet şimdi 300kb'ye düşürdüm. Ve yine Chausser'in fikrini kullandım ve 93.7kb boyutuna ulaştım. Şimdi harika çalışıyor. – harishkumar329

1

bunu da deneyebilirsiniz:

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

Bu en iyi cevaptır. Zlib uzantısının kurulu olduğunu kontrol etmeyi gerektirmez. – alexg

İlgili konular