- ベストアンサー
php ob_flushが全く動作しない
- PHPのob_flush関数が正常に動作せず、処理がまとめて表示される問題が発生しています。
- 他のサンプルサイトでも同様の問題が発生しており、サーバーの問題ではない可能性があります。
- 対処法を試しても問題が解決しないため、パソコン側の設定を確認する必要があるかもしれません。
- みんなの回答 (2)
- 専門家の回答
質問者が選んだベストアンサー
ブラウザの仕様の問題でしょうね。 かならずしも受け取ったデータをすぐに表示するのが効率的というわけでは ないので、ブラウザ側でためてから出力しているのかもしれません ajaxなど非同期処理でデータを抽出する方が現実的だと思いますよ
その他の回答 (1)
- kosukejlampnet
- ベストアンサー率44% (126/282)
http://www.php.net/manual/ja/function.flush.php より ” PHP および PHP が使っている (CGI, Web サーバなどの) バックエンドの書き込みバッファをフラッシュします。 それまでのすべての出力をユーザのブラウザに対して出力しようと試みますが、 注意すべき点があります。 flush() はウェブサーバのバッファリング手法を上書きすることはできません。 また、クライアント側のブラウザでのバッファリングにはなんの影響も及ぼしません。 PHP のユーザレベルでの出力バッファリングの仕組みにも影響を及ぼしません。 つまり、もし ob 出力バッファを使用しているのなら ob_flush() と flush() の両方をコールしなければなりません。 いくつかのサーバ、特に Win32 上ではスクリプトからの出力をブラウザに 結果を送信する前にスクリプトが終了するまでバッファに溜めることがあります。 mod_gzip のような Apache 用のサーバモジュールはそれ自体がバッファリングを行います。 そのため、flush() をコールしても 即時にデータをクライアントに送信しないという結果につながります。 ”
お礼
ありがとうございます。 上記ページに従って、何パターンも作成しました、また、mod_gzipの件も対処しましたが 結果は同じでした。 利用しているサーバーのみ、正常に動作しないなら、理解できますが、 他の方がサンプル実行例として記載している、沢山のサイトでも 正常に動作しないという点で、私のパソコンだけが何らかの原因でそうなっているのかと 思った次第です。 結果、違うやり方で、処理する事にしました。 ありがとうございました。
お礼
ありがとうございます。 やはり、ブラウザの仕様なのでしょうか。 Firefox、IE8ともに、ダメって事ですね。 至急対応したい処理でしたので、とりあえずは他の方法で対処する事にしました。 ですので、ajaxはこれから勉強して今後取り入れたいと思います。 ありがとうございました。