0

print_r() をライブで表示することは可能ですか。ライブとは、スクリプトが実行されている間を意味します。スクリプトの最後が表示されるのを待ちたくありません。私がはっきりしていることを願っています。返信ありがとうございます。乾杯。マルク

4

1 に答える 1

2

Apache などの Web サーバーを介して PHP を使用している可能性があります。

ウェブサーバーにはキャッシュが実装されており、データをより大きなブロックで送信する傾向があります。
ブラウザにはキャッシュも実装されており、時々データを更新し、最後に Web サイトの読み込みが完了したときにのみ更新されます。
最後に、PHP にはキャッシュも組み込まれています。

HTTP は「ライブ」表示用に作成されたのではなく、静的ページに似ています。そのため、ページが読み込まれた後に変更/ライブ イベントをポーリングするために「AJAX」と Javascript が発明されました。

できること:

  1. PHP からのデータが Web サーバーに送信されていることを確認するには、次のコマンドを使用できます。調べたいと思わ flush()
    れる php 設定もあります。implicit_flush
  2. ウェブサーバーは gzip/mod_gzip を使用して出力を圧縮している可能性があります。その動作を無効にする必要があります。
    多分それはそれを行うでしょう:@apache_setenv('no-gzip', 1);
  3. データを単純な「テーブル」内に配置する場合は、純粋なテキストだけでなく、コンテンツを追加してください</table>。ロード中にブラウザが表示する可能性が高くなります。
  4. これについては php ini を調べてください:
    output_buffering = Off
    zlib.output_compression = Off
    これは実行時にも実行できます ( @ini_set('zlib.output_compression', 0);)
  5. 一部のブラウザは、一定量のバイトを受信した場合にのみデータを表示します。
    私が正しく思い出すと、256バイトが役立つかもしれません。
    str_repeat(" ", 256);(またはその他)

これらの手順は問題の解決に役立つことを付け加えたいと思いますが、私の経験からすると、結果は完全ではありません。すべての新しいブラウザーとブラウザーのバージョンは、異なる動作をする可能性があります。

于 2012-04-19T12:09:54.033 に答える