2

http://w3shaman.com/article/php-progress-bar-scriptから例を実行しようとしています。

WindowsでquickPHPを使用しています。上記のチュートリアルには、正常に動作しているライブデモリンクがあります。

問題:

このスクリプトをテストすると、PHP の処理が完了したときにのみバーが表示されます。jQuery UIのプログレスバーも使用してみましたが、プログレスバーを表示する前にPHPがビジーになり、最後に突然100の完了が表示されます。なにが問題ですか ?

上記のリンクからのコード:

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN">
<html lang="en">
<head>
    <title>Progress Bar</title>
</head>
<body>
<!-- Progress bar holder -->
<div id="progress" style="width:500px;border:1px solid #ccc;"></div>
<!-- Progress information -->
<div id="information" style="width"></div>
<?php
// Total processes
$total = 10;

// Loop through process
for($i=1; $i<=$total; $i++){
    // Calculate the percentation
    $percent = intval($i/$total * 100)."%";

    // Javascript for updating the progress bar and information
    echo '<script language="javascript">
    document.getElementById("progress").innerHTML="<div style=\"width:'.$percent.';background-color:#ddd;\">&nbsp;</div>";
    document.getElementById("information").innerHTML="'.$i.' row(s) processed.";
    </script>';

    // This is for the buffer achieve the minimum size in order to flush data
    echo str_repeat(' ',1024*64);

    // Send output to browser immediately
    flush();

    // Sleep one second so we can see the delay
    sleep(1);
}

// Tell user that the process is completed
echo '<script language="javascript">document.getElementById("information").innerHTML="Process completed"</script>';
?>
</body>
</html>
4

3 に答える 3