【发布时间】:2018-12-03 00:34:12
【问题描述】:
尝试制作一个使用 setInterval(基于厘秒)的实时时钟,但我希望它在选项卡未打开甚至计算机关闭时运行。这甚至可能吗?如果您听说过游戏 cookie 点击器,我很确定它至少会在选项卡完全关闭时运行,所以我该如何复制它,如果我不能,还有其他方法可以用来制作吗数字时钟?
【问题讨论】:
标签: javascript time setinterval clock
尝试制作一个使用 setInterval(基于厘秒)的实时时钟,但我希望它在选项卡未打开甚至计算机关闭时运行。这甚至可能吗?如果您听说过游戏 cookie 点击器,我很确定它至少会在选项卡完全关闭时运行,所以我该如何复制它,如果我不能,还有其他方法可以用来制作吗数字时钟?
【问题讨论】:
标签: javascript time setinterval clock
标签关闭或机器关闭时无法运行代码。您可以做的最好的事情是定期将信息保存到localStorage,然后,每当脚本再次运行时,从localStorage 检索保存的信息并运行所有必要的计算以获取最新信息。或者,如果它像日期一样简单,您可能只需在每次打开选项卡时检查Date.now()。
这是一个非常简单的实现:
const info = localStorage.savedInfo
? JSON.parse(localStorage.savedInfo)
: { count: 0, date: Date.now() };
const now = Date.now();
if (info.date < now) {
info.count += Math.floor((now - info.date) / 1000);
info.date = now;
}
function tick() {
info.count++;
console.log(info.count);
info.date = Date.now();
localStorage.savedInfo = JSON.stringify(info);
setTimeout(tick, 1000);
}
tick();
【讨论】:
Date.now() 返回自纪元以来的毫秒数。