每30秒自动刷新一次页面

Mar*_*ary 29 html javascript

我有一个JSP页面,它必须显示正在运行的各种作业的状态.其中一些工作需要时间,因此它们的状态需要一段时间才能从处理更改为完成.

拥有一个每隔30秒左右刷新页面的javascript函数是一个好主意吗?有一个不断刷新页面的脚本有什么后果吗?

另一个选项是有一个刷新按钮,点击它会刷新页面.

jee*_*rbl 77

有多种解决方案.如果您希望刷新页面,实际上您不需要JavaScript,如果您在meta标记中添加此标记,浏览器可以为您执行此操作head.

<meta http-equiv="refresh" content="30"/>
Run Code Online (Sandbox Code Playgroud)

然后,浏览器将每30秒刷新一次页面.

如果你真的想用JavaScript做,那么你可以每隔30秒用location.reload()(docs)刷新页面setTimeout():

setTimeout(function() {
  location.reload();
}, 30000);
Run Code Online (Sandbox Code Playgroud)

否则,如果您不需要刷新整个页面而只需要刷新其中的一部分,我想Ajax调用将是最有效的方式.

  • 是的但是由于页面完全重新加载,`setTimeout`将再次执行 (7认同)
  • setTimeout不只运行一次,setInterval反复触发? (4认同)
  • 同样有用的是,如果页面在浏览器中对安全资源不可见,请勿重新加载: `if (!document.hidden) { ... }` - 与 `$(window).on('focus', function() { 一起使用window.location.reload(); });` (2认同)

404*_*404 14

只需在head部分中输入一行简单的代码就可以刷新页面

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

虽然它不是一个javascript函数,但它是希望完成上述任务的最简单方法.


ish*_*007 9

使用setInterval代替setTimeout。尽管在这种情况下,两者都可以,但setTimeout本质上只会setInterval无限期地触发一次。

<script language="javascript">
setInterval(function(){
   window.location.reload(1);
}, 30000);
</script>
Run Code Online (Sandbox Code Playgroud)

  • 为什么在这种情况下它很重要?页面将重新加载,脚本将无限期运行。 (4认同)

Pat*_*ler 7

如果你想刷新页面你可以这样使用,但刷新页面通常不是最好的方法,最好尝试只更新你需要更新的内容。

javascript:

<script language="javascript">
setTimeout(function(){
   window.location.reload(1);
}, 30000);
</script>
Run Code Online (Sandbox Code Playgroud)