Çıktı tampon tabanlı ilerleme çubuğu

4 Cevap

Ben aşağıdaki kod çalışma almak için çalışıyorlar.

Bu ob_get_clean () işlevini kullanan bir ilerleme çubuğu hüner.

Neden bilmiyorum ama bu script sadece işe yaramaz!

Sadece ilk yüzde -% 1 kadar bundan sonra hiçbir şey gelir.

<?php  
error_reporting(8191);  
function flush_buffers(){  
    @ob_end_flush();  
    @ob_flush();  
    @flush();  
    @ob_start();
} 
$ini    =   2;
echo '<script>document.getElementById(\'lpt\').style.width=\'1%\';</script><br>';  
for($i=1;$i<=100;$i++)  {
            $k=$ini-1;
            $str=str_replace("width=\'$k%\'","width=\'$i%\'",ob_get_clean());           
            $ini++;
            echo $str;
            flush_buffers();
}

?>

4 Cevap

Eğer istemciye gönderilen yaptıktan sonra 'retract' çıkış metin olamaz. Bu sadece eklenmiş olur.

Eğer sunucu ve istemci tarafında kod karıştırmak için çalışıyoruz gibi işe yaramaz. Istemci tarafında PHP kod işe yaramaz. JavaScript'i kendisini kullanarak bütün ilerleme çubuğu oluşturmak gerekir.

Delan ne diyor: @ "geri almak" ve zaten müşteriye gönderilen düzenleme çıkış yapamazsınız. Sen çıkış yüzdesi çubuğu her hareketi için tamamen yeni bir <script> pasajı olurdu.

ben bu cevapları herhangi bir tam veya olarak güncel olduğunu doğru olduğunu sanmıyorum.

Eğer çıkış geri olamaz doğrudur, ama sen KPL bile javascript gerektirmeyen basit olmayan ajax yaklaşımı kullanarak yapmak istediği ne CAN ... Ben bu her zaman yapmak. yani 9, Firefox, Chrome ve safari üzerinde test. belki de bu sorulduğunda 2010 yılında bu tekniği işe yaramadı doğru olabilir, ama neden şimdi görmüyorum. Bu html5 ya da fantezi bir şey değil ...

mutlak ve artan bir z-index: $ sayaç pozisyonu ile (bunu bakmak istiyorum, ancak fantezi / animasyonlu / vs) bu kadar KPL tahminler gibi ob_flush kullanarak yapmak ve mevcut bar HTML-çıkışına yeniden. çıkış php gibi kızarmış alır her döngü bu şekilde sunucu üzerinde çalışan ve yeni çıkış düzgünce önceki çıktı üst üzerine yerleştirilir. dağınık geliyor, ama bu teknik mükemmel görünüyor ve ben denedim her tarayıcı üzerinde gerçekten iyi çalışıyor.