2013-09-27 4 views
11

meine Ajax-Antwort ist sehr groß seine tatsächlich 900kb. also muss ich gzip, um die Leistung zu verbessern.Wie man Gzip-Inhalt als PHP-Antwort senden

kann mir bitte jemand helfen, mir von meinem php gziped content.

Vielen Dank im Voraus.

+0

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

Antwort

17

Bevor man auf der Seite Wurf in dieser outputing alles:

ob_start("ob_gzhandler"); 

Dann nach dem Inhalt es Follow-up mit:

ob_end_flush(); 

Und der Inhalt wird

+0

Vielen Dank . Es hat ein Drittel meiner Datengröße reduziert. – harishkumar329

+2

Da ra_htial erwähnt wird, ist es vorzuziehen, 'zlib.output_compression' anstelle von 'ob_gzhandler' zu verwenden, wie die php.net-Dokumentation entweder empfiehlt, und am Ende der Ausgabe" ob_end_flush(); "zu verwenden. –

+0

zlib würde auch funktionieren, aber es wird alle Anfragen auf dieser Seite komprimieren, solange der Browser es unterstützt. Während dies in den meisten Fällen ideal sein könnte, war dies eine Frage, um die Größe der Ajax-Antwort anzusprechen. – Chausser

10

Option 1 gzipped werden :

konfigur re zlib.output_compression in Ihrem php.ini

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

Option 2:

Verwendung: ob_gzhandler

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

Hinweis:

900Kb ist zu viel für eine Ajax-Antwort.

+0

+1 bis 900Kb zu groß für AJAX. Es wird funktionieren, aber Sie sollten wahrscheinlich versuchen, Ihren Liefermechanismus zu überdenken. –

+0

Ja jetzt habe ich auf 300kb reduziert. Und wieder benutzte ich Chaussers Idee und bekam 93,7kb groß. Jetzt funktioniert es großartig. – harishkumar329

1

Wenn Sie nicht Ihre php.ini Config-Datei aktualisieren, bevor ob_gzhandler() verwendet, könnte man dies auch versuchen:

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

Dies ist die beste Antwort. Es muss nicht überprüft werden, ob die Erweiterung zlib installiert ist. – alexg

Verwandte Themen