2017-05-03 1 views
1

私は現在、今私は、データベースクエリを7回ループ1ページを持って、その結果がロードされている5.6表示PHPのブラウザコンテンツを順次

をPHPにはPHP 5.0.xではから新しいサーバーにWebページを移行しています表。私はこれが最良の方法ではないことを知っていますが、それは非常にうまくいきます。結果は異なるデータベースから来ているため、現在は他の選択肢がありません。私は常に最新のコンテンツが必要なので、キャッシングはオプションではありません。

表示されるまでサイトにアクセスするには約3〜4秒かかります。クエリは最近最適化されましたが、実行にはまだ長い時間がかかります。

私の問題:古いWebサーバーはテーブルごとに結果テーブルを表示するので、ユーザーはそのページがすでにその要求を処理していることがわかります。 Table1の内容が読み込まれると、それが表示され、サーバーは2番目の結果セットを気にします。

新しいWebサーバーがWebサイトを一度に生成し、7つの結果セットがロードされ、データがグリッドにマップされるまで、コンテンツは表示されません。

オプションがありますか?php.iniには、古いウェブサーバーと同じ結果が得られますか?私はあなたに頼んでいるので、私は本当にそれをグーグルにする方法を知らない。

一方、すべてのクエリを一度に実行する(マルチスレッド?)のではなく、順番に実行するオプションがありますか?

私の "面白い"英語には申し訳ありません。

+0

コードを表示することはできますか? –

+0

それは書かれている方法ではありませんが、私はそれを匿名化しようとすることができます。古いWebサーバー以来、コード自体は変更されていませんでした。 – bockwurst

答えて

0

おそらく出力バッファリングに関係するものです。 ob_flush関数を使用してバッファの内容をクライアントに書き出すことができます。クエリの実行後にob_flushを追加するだけです。

php.ini設定は出力_バッファリングです。また、buffer_flushに問題が発生する可能性があるので、output_compressionの設定も確認してください。

+1

'output_buffering'は4096バイトに設定されていました。新しいウェブサーバでは' output_compression'が無効になっていて、古いものでも 'ob_flush()'が実行されました!ありがとうございました! – bockwurst

関連する問題