Javascript 每分钟刷新一次HTML页面

Javascript 每分钟刷新一次HTML页面,javascript,html,Javascript,Html,我有一段代码,每当有新的一分钟,即秒=0时,它就会刷新我的HTML页面 <head> <script> function reload(){ location.reload(); } function refresh(){ var d = new Date(); var s = d.getSeconds(); if (s == 0) {setTimeout(reload(), 1000

我有一段代码,每当有新的一分钟,即秒=0时,它就会刷新我的HTML页面

<head>
<script>
    function reload(){
        location.reload();
    }
    function refresh(){
        var d = new Date();
        var s = d.getSeconds();
        if (s == 0) {setTimeout(reload(), 1000)};
    }
 </script> </head>
 <body onload="refresh(), setInterval('refresh()',1000)">

函数重载(){
location.reload();
}
函数刷新(){
var d=新日期();
var s=d.getSeconds();
如果(s==0){setTimeout(reload(),1000)};
}

但是,当它刷新时,它会在秒=0的时间内刷新无限次。我试图实现“setTimeout”,以防止这种情况发生——这样它只刷新一次。但是,这不起作用,当s==0时,它仍会刷新无限次。有没有人有更多的想法来防止这种情况发生?有问题尽管问。感谢使用JavaScript,您可以将其简化为:

setTimeout(() => {
  window.location.reload(1);
}, 60 * 1000);
然而,一个不使用JS的非常简单的解决方案是

<meta http-equiv="refresh" content="60; URL=https://example.com/">

对于JavaScript,您可以将其简化为:

setTimeout(() => {
  window.location.reload(1);
}, 60 * 1000);
然而,一个不使用JS的非常简单的解决方案是

<meta http-equiv="refresh" content="60; URL=https://example.com/">

一般来说,刷新不是一种很好的做事方式。您是否考虑过使用异步调用并使用JavaScript刷新DOM,而不是重新加载整个页面

然而,如果你想走这条路线,我会以当前的开始时间为基础,从这里检查是否已经过了1秒

const t0 = performance.now();
function refresh(){
    if ((performance.now() - t0) >= 1000) {
        location.reload();
    }
}
但是,在发生这种情况之前,您需要调用refresh

至于“不理解”的评论,我清理了一个小问题,我将在这里添加一些解释:

第一行在所有函数之外,因此它设置了一个“全局”变量,因为它从不改变。为了提高速度和可读性,我使用了cosntant(而不是变量)。它以毫秒为单位将当前时间设置为t0

const t0 = performance.now();
在您的函数中,我使用相同的命令再次获取ms,并从中减去以前保存的ms。如果新的数字比原来的数字大1000多,一秒钟过去了,它可以重新加载

if ((performance.now() - t0) >= 1000) {...

总的来说,refreshin不是一种很好的做事方式。您是否考虑过使用异步调用并使用JavaScript刷新DOM,而不是重新加载整个页面

然而,如果你想走这条路线,我会以当前的开始时间为基础,从这里检查是否已经过了1秒

const t0 = performance.now();
function refresh(){
    if ((performance.now() - t0) >= 1000) {
        location.reload();
    }
}
但是,在发生这种情况之前,您需要调用refresh

至于“不理解”的评论,我清理了一个小问题,我将在这里添加一些解释:

第一行在所有函数之外,因此它设置了一个“全局”变量,因为它从不改变。为了提高速度和可读性,我使用了cosntant(而不是变量)。它以毫秒为单位将当前时间设置为t0

const t0 = performance.now();
在您的函数中,我使用相同的命令再次获取ms,并从中减去以前保存的ms。如果新的数字比原来的数字大1000多,一秒钟过去了,它可以重新加载

if ((performance.now() - t0) >= 1000) {...

如果我理解正确,您不希望在加载1分钟后刷新,而是希望在秒=0时刷新

您不必通过间隔不断调用刷新函数

我们现在有第二个。所以,如果我们从分钟中减去,我们可以找到新分钟的剩余秒数

60 - d.getSeconds();
setTimeout(function() { location.reload() }, 1000 * (60 - d.getSeconds()));
然后转换成毫秒,设置超时,页面将在新的一分钟完全刷新

60 - d.getSeconds();
setTimeout(function() { location.reload() }, 1000 * (60 - d.getSeconds()));

如果你可以考虑用/>代码> d GETMILISCONSDS()/<代码>

< P>添加/减去毫秒,如果我正确理解,你不想在加载后1分钟刷新,而是在秒=0时刷新。< /P> 您不必通过间隔不断调用刷新函数

我们现在有第二个。所以,如果我们从分钟中减去,我们可以找到新分钟的剩余秒数

60 - d.getSeconds();
setTimeout(function() { location.reload() }, 1000 * (60 - d.getSeconds()));
然后转换成毫秒,设置超时,页面将在新的一分钟完全刷新

60 - d.getSeconds();
setTimeout(function() { location.reload() }, 1000 * (60 - d.getSeconds()));

如果你这么重要,你可以考虑添加/减去毫秒,用<代码> d GeMyListEnsd.()/代码> < /P>告诉我们如何调用刷新(),这可能给出线索,如何调用刷新函数?我认为存在gimic.you使用setInterval(function(){window.location.reload();},60000)@用户3751824阅读我对以下答案的评论。在

onload
中,在
setInterval
之前移动
refresh()
。这导致了无限循环<代码>向我们展示如何调用refresh(),这可能会提供一个线索,即如何调用refresh函数?我认为存在gimic.you使用setInterval(function(){window.location.reload();},60000)@用户3751824阅读我对以下答案的评论。在
onload
中,在
setInterval
之前移动
refresh()
。这导致了无限循环<代码>您误解了我的意图,我知道如何按设定的间隔刷新页面。我需要“每一分钟”刷新我的页面。@LukeRobinson-ah我误解了。尝试将
setTimeout(reload(),1000)
更改为
setTimeout(reload,1000)
没关系,我的查询已解决。无论如何,谢谢你抽出时间。你误解了我的意图,我知道如何按设定的间隔刷新页面。我需要“每一分钟”刷新我的页面。@LukeRobinson-ah我误解了。尝试将
setTimeout(reload(),1000)
更改为
setTimeout(reload,1000)
没关系,我的查询已解决。无论如何,感谢您抽出时间。整个页面需要刷新,页面中的许多内容都在不断地从不同的文件更改。谢谢你的回答,但是我不明白你在代码中做了什么我不会说谎…我补充了一些解释。我希望这能有所帮助整个页面需要刷新,页面中的许多内容都在不断地从不同的文件更改。谢谢你的回答,但是我不明白你在代码中做了什么我不会说谎…我补充了一些解释。我希望这能有所帮助