0

これは、毎秒メッセージを出力することを期待しているコードの例です。

set_time_limit(60);

foreach($array as $key => $value)
{
    echo $value;

    sleep(5);
}

ループ内の各ステップで停止するまで待たずに $value の結果を即座に出力するには、JS スクリプトがどのように見えるべきか疑問に思っています。

4

3 に答える 3

0

JavaScript を使用して PHP 変数にアクセスすることはできません。JavaScript はブラウザ内で実行されますが、PHP はサーバー上で実行されます。

fab のソリューションを使用し、現在の出力バッファをechoflush()でブラウザに送信する必要があります。ただし、これを行うとすぐに、テキストがとにかく表示されるため、JavaScript を使用する必要がなくなります。

foreach($array as $key => $value)
{
    echo $value;
    flush();

    sleep(5);
}
于 2013-02-28T10:59:50.330 に答える
0

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...表示方法を操作するためにあります。

于 2013-02-28T11:02:30.040 に答える
-1

JavaScript を使用する理由

スクリプトが次のように終了する前に、いつでも出力を送信できますflush()

set_time_limit(60);

foreach($array as $key => $value)
{
    echo $value;
    flush();

    sleep(5);
}
于 2013-02-28T10:49:01.763 に答える