每隔一小时重新加载页面

时间:2015-05-22 08:24:44

标签: javascript

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

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

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

2 个答案:

答案 0 :(得分:3)

在这行代码中

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

location.reload()之前遇到一个问题setTimeout,所以您的代码等效于下一个:

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

您需要传递对

等功能的引用
setTimeout(location.reload.bind(location),3600000 - ((new Date) % 3600000));

OR

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

答案 1 :(得分:0)

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

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