0

I have a webpage that run a query on a db and reports the results. Currently the page auto refreshes itself every 10 seconds in order to display (almost) real-time data.

This is probably a very inefficient way of accomplishing this but as of right now I'm not really sure what alternatives there are.

What options do I have to present real-time data on a php webpage?

4

3 回答 3

0

你可以使用 node.js 和 socket.io。这是帮助您入门的好例子:

http://book.mixu.net/ch13.html

或者你可以使用ejabberdstrophe js 库。

我将这两种解决方案都用于实时处理,我发现 node.js 和 socket.io 更容易实现。

于 2013-08-11T06:25:01.160 回答
0

根据您的数据的用途和使用方式,我最近开始将数据显示功能放入单独的页面中,然后在页面加载时使用 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');
};

上面的即时通讯用于在一个页面上显示 4 大量数据,所有这些数据都在计时器上很好地更新,或者在我通过调用 reloaddivs 与页面交互之后

于 2013-08-11T07:47:21.383 回答
0

仔细检查您的页面以准确确定每 10 秒更新一次的数据是什么 - 很可能它不会是整个页面(菜单、导航、页眉、页脚)。

每 10 分钟或每小时缓存所有这些数据,尤其是当驱动这些元素的数据被从数据库中拖出时。

然后包括包含动态数据的面板。

更好的是使用 Ajax 加载动态数据以每 n 秒刷新一次。

于 2013-08-11T07:58:46.613 回答