2011-06-22 16 views
0

データベースから自分のウェブサイトにデータを出力しています。ページが読み込まれてから別の場所に表示され、ページの一部が別の時間に読み込まれ、ページが読み込まれるまでジャンプします。ほとんどのサイト(Facebook、twitterなど)のように同時に読み込み、別の時にコードの一部を出力しないようにしたい。私はPHPを使用しており、何が原因であるかわからない。誰もが何が起こっているか、これと同じ問題があったか知っていますか?異なる時間にページを読み込む部分

+0

これを実証するライブサンプルがありますか? – deceze

+0

'flush()'関数を使用する可能性のあるフレームワークやライブラリを使用していますか? – nkorth

+0

他の人は、ob_startがそれを修正しました。 – Matt

答えて

3

あなたは、出力バッファリングを試みることができる:

// before any output is generated 
ob_start(); 

// all your code 

// end of the script 
echo ob_get_clean(); 

これは、バッファに生成されたすべての出力をキャプチャし、スクリプトが完了したときにそれをダンプします。ただし、これは、クエリが完了するまでコンテンツが送信されないことを意味します。おそらく、データベースヒットのボトルネックの影響を減らすために、できるだけデータベースのクエリを最適化することを検討する必要があります。

+0

これは実際にはそれでした。ありがとう!病気は8分で答えを受け入れる。 – Matt

+0

@Matt、問題ありません。私は誤字を認識しました。あなたは 'ob_end_clean()'(* 'ob_end_clean()'はバッファを破棄しません)を望みます。私はそれに応じて私の答えを更新しました。また、可能であれば、データベースクエリを最適化することを忘れないでください。 – Dan

1

あなたの質問のコメントでは、ob_start()でこれを固定していると言いました。すべてのページを一度にバッファリングするのは実際には良い考えではありません。すべてが一度に表示されるため、読み込み時間が犠牲になり、ページがユーザーにとってより遅く見えるようになります。研究はそれがslow page loads drive people away from your siteを示しています。ページのクイックロードを目的とするもう一つの理由は、検索結果をランク付けする際の信号としてGoogle has started using page speedです。

Googleのような大きな高速サイトは、実際には逆の反応をします。flush the buffer early などが頻繁に使用されます。

いくつかの高速ページが「一度に読み込む」ように見える理由は、効果的なページキャッシュ、負荷分散された地理的に位置付けられたサーバー、CDNなどを使用して、 JavaScript。

ページを高速化する方法については、Yahoo! performance guidelinesをご覧ください。

関連する問題