Script çalışırken çıktı vermek
Bir PHP script’inin çıktısı script’in çalışması tamamlandıktan sonra gönderilir. Scrip çalışmaya devam ederken sayfada/ekranda bir çıktı gözükmez. Script’in oluşturduğu tüm çıktılar Output Buffer (ob) adı verilen tamponda tutulur. Programcı isterse bu tamponu ob_ fonksiyonlarıyla kontrol edebilir. Tampondaki içeriği istenildiği anda çıktı vermek için için () komutu kullanılabilir. ob_flush cağrıldığında o ana kadar çıktı tamponuna biriktirilen tüm içerik tarayıcıya bir header yardımıyla gönderilir ve görüntülenmiş olur.
Çıktının zamanlamasını ayarlayarak göze hoş gözüken sayfa yüklemeleri elde edilebilir. Yine ob_flush ile uzun bir işlemi yerine getiren script’in, kullanıcıyı o anda yağtığı iş hakkında bilgilendirmesi için faydalıdır. Gerektiğinde bu özellik kullanılırsa ziyaretçinin sayfa izleme kalitesi artacaktır.
Aşağıdaki kodda ob_imlicit_flush komutunun kullanımına örnek yer alıyor. Bu komut çıktı tamponunu devre dışı bırakır ve echo gibi her çıktı komutunun ardından çıktının anında tarayıcıya gönderilmesini sağlar. Aşağıdaki kodun çalışan halini buraya tıklayarak izleyebilirsiniz.
Dikkat edilmesi gereken bir nokta, ob_flush komutundan hemen sonra () komutunun da kullanılması gerektiğidir.
<?php
ob_implicit_flush(true);
for($i=0; $i<8; $i++)
{
echo "<span style='width:8px; height:8px; background:blue'></span> ";
for($k = 0; $k < 10000; $k++) echo ' ';
}
?>
ob_flush (1), php anında çıktı verme (1)
Turkish
English
Chinese

Evet uyarınızın anladım;
Aslinda ob_flush() tampondaki çıktıyı istemciye göndererek yapmasi gerekeni doğru şekilde yapıyor. Anladığım kadarıyla burada sorun yok.
Sorun tam oluşmamış sayfa bölümlerinin tarayıcı tarafından istendigi gibi (ya da tahmin edildiği gibi) görüntülenememesi. Varsayalımki tarayıcı birbiri ile ilişkili olan nesneleri elde etmeden tüm kompozisyonunu görüntülemeyebiliyor. Bu duruma örnek vermeyi düşündüm ama aklıma gelmedi…
Sonuç olarak; bu özelliği kullanırken mevcut tarayıcıların davranışını iyi analiz etmek ve sade tasarımlarda tercih etmek gerekiyor.
Bilgilendirme için teşekkür ederim.
Bahsettiğiniz durum her zaman çalışmıyor. Verdiğiniz linkde sayfa sadece kucuk mavi blocklardan oluştuğu için sorunsuz gibi görünüyor.
Sayfa resimli, daha büyük ve karmaşık olduğu zaman verdiğiniz örnek çalışmaz. Onun için bu fonksyonların bahsettiğiniz amaçla kullanılması pek önerilmiyor.
Ayrıca değişik gezgin’ler de bu konuda değişik davranabiliyor. Sayfanın tüm içeriğini indirdikten sonra gösteriyorlar.