繁体   English   中英

每隔一小时重新加载页面

[英]reload the page every exact hour

我有一个页面应该每小时完全重新加载(所以在上午8:00,上午9:00,依此类推)。 该页面显示在设备上,无需用户交互即可随时打开。 例如,它可以在上午8:45开启,但第一次重新加载必须在上午9:00。 这意味着具有3.600.000毫秒的简单setTimeout不是正确的选择。 我的实际代码是这样的:

complete: function() {
    setTimeout(location.reload(),3600000 - ((new Date) % 3600000));
}

这是获得结果的最佳方式吗? 这一天的所有时间都是安全的吗? 我还在学习javascript中的日期,所以感谢您的帮助!

在这行代码中

setTimeout(location.reload(),3600000 - ((new Date) % 3600000));

有一个问题,在setTimeout之前调用location.reload() ,所以你的代码等效于下一个:

var func = location.reload(),
    delay = 3600000 - ((new Date) % 3600000);
setTimeout(func, delay);

你需要传递函数的引用

setTimeout(location.reload.bind(location),3600000 - ((new Date) % 3600000));

要么

setTimeout(function(){location.reload();},3600000 - ((new Date) % 3600000));

如果您可以使页面首次从服务器重新加载,则服务器可以结束重新加载值,该值是从小时开始的毫秒数,然后在重置计时器时重新加载整个小时。

如果页面没有从服务器重新加载,这将无法工作,例如,如果笔记本电脑被唤醒并且页面未以某种方式重新加载。 (我不知道在这种情况下浏览器会做什么...)

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM