Apache ve PHP ile öbek gzip için herhangi bir yolu

3 Cevap php

O olabilir gibi optimize edilmiş gibi ve önbelleğe alma bir seçenek değil - ben altına yakın sayfanın bir kısmını tamamlamak için bir süre (~ 10 saniye) sürer bir sitede bir web uygulaması var.

Kullanıcı kadar hiçbir şey gördüğü gibi biz sıkıştırma bir. Htaccess yönergesi SetOutputFilter DEFLATE Sorun bu da kullanıcıya çıktısı başlamadan önce tüm sayfayı tamamlanmasına kadar elde tutulacak neden olur aracılığıyla sunucu üzerinde etkin olması, bu optimal değildir sayfa tamamlar.

Ben de php ob_start("ob_gzhandler"); yöntemi aracılığıyla denedim.

Şu anda sıkıştırılmış olan bu özel komut kısıtlayan benim. Htaccess bir <FilesMatch > var.

Temelde benim soru bu - öbek gzip söylemek ya da kullanıcı parçalar onu alır, böylece söndürmek için bir yolu var mı, bu yüzden sayfa yüklenirken başladığını görebiliriz?

3 Cevap

Diyorum ki: hayır. Ben yol HTTP tarafından sağlanan şimdi olduğunu düşünüyorum.

Eğer ob_start("ob_gzhandler") yöntemi kullanıyorsanız, bu yapabilirsiniz - flush ve ob_flush işlevlerine bakmak gerekir.

Bazı örnek kod - curl ile yüklemeyi deneyin, ya da gerçek http yanıtları incelemek için Fiddler kullanıyorsanız

<?php
ob_start('ob_gzhandler');
print "chunk 1";
ob_flush();
flush();
sleep(2);
print "chunk 2";
ob_end_flush();

Ne yazık ki, tarayıcılar parçalar bunu görüntülemek için görünmüyor - Ben her öbek veri çok küçük olduğundan bu olduğunu düşünüyorum. Sen Test dosyada wget -O - -q http://chunktest/chunktest.php arayarak bu etkiyi kontrol edebilirsiniz.

Biraz daha yararlı kaynaklar vardır here

Sayfa yükleme süresi uzun, bunu işlemek için yaratıcı bir yol sayfada uzun yükleme içeriğe bir ajax çağrısı ile çok hızlı bir yükleme sayfasını kullanmak olduğunu ise. Biz detaylı üye kullanım istatistikleri çekin sayfaları için bunu yapın ... Adsense gibi diğer siteler, örneğin, kendi raporlar sayfasında bunu.