如何使用JavaScript每X秒刷新浏览器?

13
我使用一个Firefox插件,可以每隔X秒刷新浏览器窗口。作为前端开发人员,这非常有用,因为我可以在编辑器中保存CSS / XHTML更改的瞬间即时获取反馈。
然而,我注意到这经常停止工作。我猜想这可能是由于我添加到页面中的javascript/jQuery与该插件产生冲突。
我只是想知道是否可能添加一行临时的javascript代码来模拟需要时的自动刷新行为。
3个回答

44

刷新页面最简单的方法是在head标签中添加以下内容:

<meta http-equiv="refresh" content="30" />

每30秒刷新一次页面。

你可以通过以下JavaScript代码实现类似的效果:

setTimeout('window.location.href=window.location.href;', 30000);

注意: 在Javascript中有多种刷新页面的方法可供使用,以下这些方法同样有效:

setTimeout('window.location.reload();', 30000);

setTimeout('history.go(0);', 30000);

还有其他方法。

这两种方法每30秒钟会完全重新加载页面。如果你只是进行一些快速且简单的操作,那么这是可以接受的。但通常情况下,如果要给用户使用,最好使用 AJAX 刷新页面的部分内容。例如:

setInterval(refresh_table, 30000);

function refresh_table() {
  $("#table_container").load("/load_table");
}

1
这个可以直接用location.reload()代替吗? - karim79
有很多种方法可以重新加载页面。我的方法可能有点老派。请参见http://www.mediacollege.com/internet/javascript/page/reload.html。 - cletus
<meta http-equiv="refresh" content="600"> 是自动刷新页面最简单的解决方案。 - Steven
为什么不用 setInterval(refresh_table,30000); 呢? - gnarf
谢谢Cletus,很有趣看到有这么多方法! - james6848

18
setTimeout("location.reload(true);", timeoutPeriod);

2
这对我很有效。如果您在URL中添加一个适当的ID引用页面内的位置,例如...index.html#footer,您可以在刷新时保持当前正在工作的区域可见。不错。 - james6848

2

这个元标记也很神奇。它可以在每30秒后刷新页面,您还可以进行更改。

<meta http-equiv="refresh" content="30">

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接