在选项卡完全关闭时保持 setInterval 运行

Keep setInterval running while tab is completely closed

尝试制作一个使用 setInterval(基于厘秒)的实时时钟,但我希望它在选项卡未打开甚至计算机关闭时 运行。这可能吗?如果您听说过游戏 cookie clicker,我很确定至少 运行s 当标签完全关闭时,我该如何复制它,如果我不能,还有其他方法吗我可以用来制作数字时钟吗?

无法在选项卡关闭或机器关闭时运行编码。您可以做的最好的事情是定期将信息保存到 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();

https://jsfiddle.net/gn9128ea/1/