これは、毎秒メッセージを出力することを期待しているコードの例です。
set_time_limit(60);
foreach($array as $key => $value)
{
echo $value;
sleep(5);
}
ループ内の各ステップで停止するまで待たずに $value の結果を即座に出力するには、JS スクリプトがどのように見えるべきか疑問に思っています。
これは、毎秒メッセージを出力することを期待しているコードの例です。
set_time_limit(60);
foreach($array as $key => $value)
{
echo $value;
sleep(5);
}
ループ内の各ステップで停止するまで待たずに $value の結果を即座に出力するには、JS スクリプトがどのように見えるべきか疑問に思っています。
JavaScript を使用して PHP 変数にアクセスすることはできません。JavaScript はブラウザ内で実行されますが、PHP はサーバー上で実行されます。
fab のソリューションを使用し、現在の出力バッファをechoとflush()でブラウザに送信する必要があります。ただし、これを行うとすぐに、テキストがとにかく表示されるため、JavaScript を使用する必要がなくなります。
foreach($array as $key => $value)
{
echo $value;
flush();
sleep(5);
}
Javascript はすべてのタイミング処理を行うことができます (また行う必要があります)。配列をエンコードされた JSON 文字列として出力し、JavaScript 変数として HTML に出力する方がはるかに賢明です。
<script>
var array = "<?php echo json_encode($array); ?>";
</script>
次に、javascript を使用して配列を解析し、ブラウザーを使用して各メッセージを 1 秒間隔で簡単に表示できます。配列を JSON 文字列から次のような配列に変換し直したら...
var clearInterval = setInterval(deliver_message,1000); // Run a function every second
function deliver_message() {
document.write(array.shift()); //This could be a Jquery append, or similar
if (array.length == 0)
clearInterval(loop);
}
サーバー側の処理は、すべての情報をブラウザーに配信するためにあります。それはクライアント側です... javascript...表示方法を操作するためにあります。
JavaScript を使用する理由
スクリプトが次のように終了する前に、いつでも出力を送信できますflush()
。
set_time_limit(60);
foreach($array as $key => $value)
{
echo $value;
flush();
sleep(5);
}