我想每10秒加载/刷新一个特定页面,以查看从数据库中提取的更新数据。
我用META做了
<META HTTP-EQUIV=Refresh CONTENT='10; URL=livedata.php'>
但我仍然同意我们也这样做 使用:
- 通过settimeout加载div的Javascript
- Ajax动态刷新
如果您使用META,AJAX动态刷新,Javascript settimeout分享性能问题,那将会很棒。还可以分享最好的方法。
注意:需要刷新整个页面而不是特定的帧或div。
答案 0 :(得分:4)
使用AJAX对用户来说是最不干净的,因为用户在完成之前不会注意到正在刷新/重新加载的东西。
请注意,根据具体情况,AJAX可以比META表现更好或更差:
答案 1 :(得分:2)
如果您打算刷新整个页面,使用<META>
标签是最简洁的方法。当你有一个完全支持HTML的方法时,让JS计时器刷新你的页面似乎很尴尬。
但是,如果您只需要刷新页面的特定部分,请使用AJAX。它在用户体验和性能方面都更好。
答案 2 :(得分:2)
使用javascript获取动态内容还有一个好处:如果内容没有加载一次,它仍然可以继续尝试。如果你重新加载整个页面并且它没有加载,那么它就会停在那里。
如果您使用Ajax,那么显示效果会更好,因为您没有看到整个页面消隐并一次又一次地重新渲染。
答案 3 :(得分:1)
对于客户来说,你提到的所有方法之间并没有什么区别。我能找到的唯一区别是使用不像其他解决方案那样需要javascript,但现在每个人都有javascript。
对我而言,最重要的区别在于服务器使用情况。如果你有100个用户每10秒刷新一次,那已经是大约10 reqs / sec。根据您必须生成页面的逻辑(可能是dinamic),这可能会导致服务器使用率急剧上升。确保你对此保持谨慎。
答案 4 :(得分:1)
请注意,您还可以使用PHP中的header()来完成元标记的操作。只需确保在其他输出之前调用header()。
答案 5 :(得分:0)
使用jQuery,你可以做到这一点):
var seconds = 10;
var id = setInterval(function()
{
$('#container').load('whatever.php');
}, 1000*seconds);
:)