2009-05-02 12 views
0

データベースからフェッチされた更新データを表示するために、10秒ごとに特定のページをロード/リフレッシュしたいとします。定義済みの秒ごとにPHPページを更新する

は、私はそれ

<META HTTP-EQUIV=Refresh CONTENT='10; URL=livedata.php'> 

を行うためにMETAを使用しかし、それでもまだ、私たちはまた、使用して でこれを行うに同意:

  • JavascriptがsetTimeoutメソッドによってdiv要素をロードするために
  • アヤックス動的リフレッシュ

META、AJAXの動的リフレッシュ、Javascriptのsettimeoutを使用してパフォーマンスの問題を共有するとよいでしょう。また、その最良の方法を共有してください。

注:特定のフレームまたはdivではなくページ全体を更新する必要があります。

あなたがそれを行うことができますjQueryを使って
+1

あなたの現在の方法を使って何が問題なのかを説明すると、すべてのメタタグがこの理由だけでそこにあると、人々はあなたの答えに役立つかもしれません。 – Pool

+0

メタはうまく動いていますが、それでも問題はありませんが、メタデータはパフォーマンス面で問題があります。 – Webrsk

答えて

4

AJAXの使用は、ユーザが何かが完了するまでリフレッシュ/リロードされていることに気付かないため、ユーザにとってはあまり分かりません。データを更新する場合は、完全なHTMLページのサイズに対して小さいです、AJAXは、METAよりも優れている

  • 理由:

    AJAXは、状況に応じて、METAよりも良くも悪くも実行できることに注意してくださいAJAXを使用すると、データの差のみを送信したり、HTMLよりもコンパクトな形式でデータを送信したりすることができます。

  • JavaScriptを実行すると、ユーザーのブラウザに負担がかかります。ユーザーが20個のタブを開いている(これは珍しいことではない)、それぞれがバックグラウンドでいくつかのsetTimeoutを実行すると、ブラウザレスポンスが大幅に変わり、すべてをJavaScriptフリーリフレッシュに変換できます。
+0

私はあなたの意見に同意します。ダイナミック変数が渡される必要があるので、特定のフレームまたはdivではなく、完全なページを更新したいと思います。メタデータにはパフォーマンス面でのボトルネックがありますか? – Webrsk

0

):

var seconds = 10; 
var id = setInterval(function() 
{ 
    $('#container').load('whatever.php'); 
}, 1000*seconds); 

:)

+0

jQueryを使っても、それがなくても、純粋なJavaScriptやMETAタグを使用することは間違いありません。しかし、どちらが良いと、なぜですか? – pts

+0

それはあなた次第です。 jQueryを使用する理由は簡単で簡単なためです。あなたは4/5行のコードを見ただけです。それを使用しない唯一の理由は、数kbのjQueryをロードする必要がありますが、ロードが速く、誰もがそれを使用していて、圧縮/圧縮されたバージョンのサイズが小さいからです。 – ozke

2

あなたはページ全体をリフレッシュすることを計画している場合、<META>タグを使用してクリーンな方法です。これを行うための完全にサポートされたHTMLのみの方法がある場合、JSタイマーでページを更新するのは難しいようです。

ただし、ページの特定の部分だけをリフレッシュする必要がある場合は、AJAXを使用してください。ユーザーエクスペリエンスとパフォーマンスの面で優れています。

1

クライアントにとっては、あなたが言及したすべての方法の間に実際に違いはありません。私が見つけることができる唯一の違いは、他のソリューションのようにjavascriptを必要としないことを使用していることですが、今日は誰もがjavascriptを持っています。

大きな違いは、私には、サーバーの使用にあります。 10秒ごとに100人のユーザーがリフレッシュしている場合は、すでに約10回/秒です。ページを生成する必要があるロジック(おそらくディナミック)に応じて、サーバーの使用率が急上昇する可能性があります。あなたはそれに注意することを確認してください。

1

PHPでheader()を使用して、メタタグの処理を実現することもできます。他の出力より先にheader()を呼び出すようにしてください。

2

動的コンテンツを取得するためにjavascriptを使用すると、もう1つの利点があります。コンテンツが一度読み込まれない場合でも、引き続き試行できます。ページ全体をリロードしても読み込まれない場合は、そこで停止します。

また、Ajaxを使用している場合は、ページ全体が空白になって何度も再レンダリングされるのを見ることができないため、表示がよかったです。

関連する問題