我有一个在数据库上运行查询并报告结果的网页。目前,页面每10秒自动刷新一次,以显示(几乎)实时数据。
这可能是实现这一目标的一种非常低效的方式,但截至目前我还不确定有哪些替代方案。
我有什么选择在php网页上显示实时数据?
答案 0 :(得分:0)
您可以使用node.js和socket.io。这是让你入门的好例子:
http://book.mixu.net/ch13.html
我将这两种解决方案用于实时工作,我发现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秒刷新一次。