2015-10-02 295 views
4

我有一个JSP页面,它必须显示正在运行的各种作业的状态。其中一些工作需要时间,所以需要一段时间才能将他们的状态从处理改为完成。每30秒自动刷新页面

拥有一个JavaScript函数可以每隔30秒刷新一次页面,这是一个好主意吗?有一个不断刷新页面的脚本会有什么后果吗?

另一种选择是有一个刷新按钮,点击时会刷新页面。

+8

不刷新整个页面,只刷新页面的内容 - 需要使用_AJAX_ – Tushar

+0

更新的页面的一部分@Tushar有一个很好的建议...只需刷新内容需要更新的页面部分即可。一个刷新脚本可能与在requestAnimationFrame循环内每隔30秒触发一次jQuery'.load()'一样简单。 – markE

+0

http://www.onextrapixel.com/2012/02/06/a-beginners-guide-to-using-ajax-in-your-website/ –

回答

18

这有多种解决方案。如果你想刷新页面,你实际上不需要JavaScript,如果你在head标签中加入这个meta标签,浏览器就可以为你做。

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

然后浏览器每隔30秒刷新页面。

如果你真的想用JavaScript来做到这一点,那么你就可以刷新页面内setTimeout()location.reload()docs)每30秒:

setTimeout(function() { 
    location.reload(); 
}, 30000); 

否则,如果你不需要刷新整个页面,但只有一部分,我想Ajax调用将是最有效的方式。

5

只是一个简单的头部部分的代码行可以刷新页面

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

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

+0

为什么要投票?任何特定的原因? – 404

+0

我不认为这应该是downvoted,它回答了这个问题。可能不是最好的做法,但由OP决定。 –

+0

可能是从没有回答问题的遗留下来。 – imtheman

3

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

的javascript:

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