Çok seneler önce burada  ob_implicit_flush sayesinde ob_flush fonksiyonunun kısa bir kullanım örneğini vermiştim. Malesef aradan 5 yıl geçtikten sonra görüyorum ki bu iş 2 satır kod ile gerçekleştirilemeyecek duruma gelmiş ;)  Biraz araştırma ve teftiş ile tüm tarayıcılarda çalışan bir kod elde etmeyi başardım. Kodu aşağıda paylaşıyorum.  Kodu kullanmaya başlamadan önce aynı dizinde bir .htaccess dosyası oluşturup içinde şu satırların olduğundan emin olun.

# Apache gzip sikistirmasi uygulamasin
SetEnv no-gzip dont-vary

# PHP output buffer’a sikistirma uygulamasin
php_flag zlib.output_compression Off

Demo sayfasını görüntülemek için burayı tıklayınız.

<?php
	/*
	* Sınanan tarayıcılar: Chrome 23.0.1271.97, Firefox 11.0, IE 9.0.8112
	* Kontrol tarihi: 7.1.2013
	*/
	header( 'Content-Encoding: none; ' ); // gzip kullanma
	header( 'Content-type: text/html; charset=utf-8' ); // g.chrome için

	ob_end_flush(); // output buffer'ı kapat
	ob_start();

	for($i=0; $i<10; $i++)
	{
	  echo "<span style='background:blue'>&nbsp;&nbsp;</span>&nbsp;";
	  usleep(200000);

	  ob_flush();
	  flush(); // Internet Explorer için gerekli
	}
?>

1 YORUM

  1. Selam, nedir şimdi bunlar, gzip neden kapatıldı, zlib dediğin gzip ile aynı işi yapmıyor mu, yapıyorsa hangisi daha iyi, yoksa ikisi aynı şey mi, her sunucuda çalışır mı, sunucu tarafından eklenti kurulması gerekiyor mu? gibi daha pek çok sorunun cevapsız kaldığı bu paylaşım için teşekkürler. Böyle paylaşım olmaz. Zoraki yazmayın kardeşim. Vaktin yoksa bırakacaksın bu işleri. Git vaktini çalan şeyle uğraş. Adam gibi bilgi yok internette. Bu yorum bile senin yazından daha uzun oldu. Hesabını sen yap.

CEVAP VER

This site uses Akismet to reduce spam. Learn how your comment data is processed.