试图制作一个使用setInterval(基于厘秒)的实时时钟,但是我希望它在选项卡未打开或什至在计算机关闭时运行。这有可能吗?如果您听说过游戏Cookie单击器,那么我很确定它至少在选项卡完全关闭时才能运行,因此我该如何复制它,如果不能,是否可以使用其他方法制作?数字时钟?
答案 0 :(得分:2)
在关闭标签页或关闭计算机的情况下,无法运行 code 。最好的办法是定期将信息保存到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();