データベースでクエリを実行し、結果を報告する Web ページがあります。現在、(ほぼ) リアルタイムのデータを表示するために、ページは 10 秒ごとに自動更新されます。
これはおそらくこれを達成するための非常に非効率的な方法ですが、現時点では、どのような代替手段があるのか よくわかりません.
PHP Web ページにリアルタイム データを表示するには、どのようなオプションが必要ですか?
ページを注意深く調べて、10 秒ごとに更新されるデータが何であるかを正確に特定します。ページ全体 (メニュー、ナビゲーション、ヘッダー、フッター) ではない可能性があります。
10 分ごと、または 1 時間ごとなど、すべてのデータをキャッシュします。特に、これらの要素のいずれかを駆動するデータがデータベースからドラッグされている場合は特にそうです。
次に、動的データを含むパネルを含めます。
さらに良いのは、Ajax を使用して動的データをロードし、n 秒ごとに更新することです。
データの目的と使用方法に応じて、最近、データ表示機能を別のページに配置し、jquery を使用してそれらのページをページの読み込み時にメイン ページのダイブに読み込み、タイマーで div をリロードし、更新がすぐに必要な場合はリロード機能を使用すると、ページ全体が更新されずにフラッシュして空白になりますが、代わりにデータが適切に更新されます。
var paused = false,
auto_refresh = setInterval(
function()
{
if (paused) return false;
$('#mot').fadeOut('slow').load('motview.php?view1=$dayd&viewdate=1').fadeIn('slow');
$('#work').fadeOut('slow').load('workview.php?view1=$dayd&viewdate=1').fadeIn('slow');
$('#motday').fadeOut('slow').load('motdaylist.php? view1=$dayd&viewdate=1').fadeIn('slow');
$('#notelist').fadeOut('slow').load('notelist.php?dayd=$dayd').fadeIn('slow');
}, 60000);
$(document).ready(function(){
$('#mot').load('motview.php?view1=$dayd&viewdate=1');
$('#work').load('workview.php?view1=$dayd&viewdate=1');
$('#motday').load('motdaylist.php?view1=$dayd&viewdate=1');
$('#notelist').load('notelist.php?dayd=$dayd');
});
function reloaddivs()
{
$('#mot').load('motview.php?view1=$dayd&viewdate=1');
$('#work').load('workview.php?view1=$dayd&viewdate=1');
$('#motday').load('motdaylist.php?view1=$dayd&viewdate=1');
$('#notelist').load('notelist.php?dayd=$dayd');
};
上記の im は、1 つのページに 4 ロットのデータを表示するために使用しており、タイマーで、または reloaddivs を呼び出してページと対話した後にすべてが適切に更新されます。
node.js と socket.io を使用できます。これは、開始するための優れた例です。
http://book.mixu.net/ch13.html
または、ejabberdおよびstrophe js ライブラリを使用できます。
私はその両方のソリューションをリアルタイムのものに使用しましたが、node.js と socket.io の実装がはるかに簡単であることがわかりました。