2013-09-27 141 views

Trả lời

17

Trước outputing bất cứ điều gì trên ném trang trong này:

ob_start("ob_gzhandler"); 

Sau đó, sau khi nội dung của bạn theo nó lên với:

ob_end_flush(); 

Và nội dung của bạn sẽ được giải nén bằng

+0

cảm ơn bạn rất nhiều . nó giảm một phần ba kích thước dữ liệu của tôi. – harishkumar329

+2

Như ra_htial đề cập đến nó được ưa thích để sử dụng 'zlib.output_compression' thay vì' ob_gzhandler', như tài liệu php.net đề nghị hoặc hơn nữa, đừng quên sử dụng 'ob_end_flush();' ở cuối đầu ra. –

+0

zlib cũng sẽ hoạt động, nhưng nó sẽ nén tất cả các yêu cầu trên trang web đó miễn là trình duyệt hỗ trợ nó. Trong khi đó có thể là lý tưởng trong hầu hết các trường hợp, đây là một câu hỏi để giải quyết kích thước phản hồi ajax. – Chausser

10

Lựa chọn 1 :

configu tái zlib.output_compression trong bạn php.ini

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

Phương án 2:

Sử dụng: ob_gzhandler

Đốc: http://php.net/manual/en/function.ob-gzhandler.php

Lưu ý:

900Kb là quá nhiều cho một phản ứng ajax.

+0

+1 đến 900Kb quá lớn đối với AJAX. Nó sẽ hoạt động, nhưng bạn có lẽ nên thử xem xét lại cơ chế phân phối của bạn. –

+0

Có ngay bây giờ tôi đã giảm xuống còn 300kb. Và một lần nữa tôi đã sử dụng ý tưởng của Chausser và có kích thước 93,7kb. Bây giờ nó làm việc tuyệt vời. – harishkumar329

1

Nếu bạn không thể cập nhật tập tin php.ini cấu hình của bạn trước khi sử dụng ob_gzhandler() bạn có thể thử này quá:

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

Đây là câu trả lời hay nhất. Nó không yêu cầu kiểm tra rằng phần mở rộng zlib được cài đặt. – alexg