[英]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.