PHP MySQL Requery vs Refresh

时间:2013-08-11 06:14:22

标签: php mysql real-time

我有一个在数据库上运行查询并报告结果的网页。目前,页面每10秒自动刷新一次,以显示(几乎)实时数据。

这可能是实现这一目标的一种非常低效的方式,但截至目前我还不确定有哪些替代方案。

我有什么选择在php网页上显示实时数据?

3 个答案:

答案 0 :(得分:0)

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

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

或者您可以使用ejabberdstrophe js库。

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

答案 1 :(得分: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');
};

上面的im用于在一个页面上显示4个数据,这些数据在计时器上很好地更新,或者在通过调用reloaddivs与页面交互后

答案 2 :(得分:0)

仔细检查您的页面,确切地确定每10秒更新一次的数据 - 可能不是整个页面(菜单,导航,页眉,页脚)。

高速缓存所有数据,每10分钟或每小时一次 - 特别是如果从数据库中拖动任何这些元素的数据。

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

最好还是使用Ajax加载动态数据每n秒刷新一次。