[英]Refresh a PHP page for every predefined seconds
我想每10秒加载/刷新一个特定页面,以查看从数据库中获取的更新数据。
我用META来做
<META HTTP-EQUIV=Refresh CONTENT='10; URL=livedata.php'>
但我仍然同意,我们也可以使用以下方法:
- 用settimeout加载div的Javascript
- Ajax动态刷新
如果您使用META,AJAX动态刷新,Javascript settimeout共享性能问题,那就太好了。还请共享实现此目标的最佳方法。
注意:需要刷新整个页面,而不是特定的框架或div。
使用AJAX对用户的干扰最小,因为在完成之前用户不会注意到正在刷新/重新加载某些内容。
请注意,根据具体情况,AJAX的性能可能比META更好或更差:
如果计划刷新整个页面,则使用<META>
标记是最干净的方法。 当您具有完全受支持的仅HTML方式时,使用JS计时器刷新页面似乎很尴尬。
但是,如果只需要刷新页面的特定部分,请使用AJAX。 在用户体验和性能方面都更好。
使用javascript提取动态内容还有另外一个好处:如果内容一次没有加载,它仍然可以继续尝试。 如果您重新加载整个页面但没有加载,那么它将在此处停止。
同样,如果您使用Ajax,则显示效果会更好,因为您不会看到整个页面都消隐掉并一次又一次地重新呈现。
对于客户端,您提到的所有方法之间实际上没有任何区别。 我可以找到的唯一区别是,使用它不需要像其他解决方案一样使用javascript,但是如今无论如何,每个人都拥有javascript。
对我来说,最大的不同在于服务器的使用情况。 如果您有100位用户每10秒刷新一次,那已经大约是10 res / sec。 根据生成页面的逻辑(可能是动态的),这可能导致服务器使用率急剧上升。 确保您对此有所注意。
请注意,您还可以在PHP中使用header()来完成meta标签的作用。 只要确保在其他输出之前先调用header()即可。
使用jQuery,您可以做到):
var seconds = 10;
var id = setInterval(function()
{
$('#container').load('whatever.php');
}, 1000*seconds);
:)
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.