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

时间:2018-06-24 02:13:44

标签: javascript time setinterval clock

试图制作一个使用setInterval(基于厘秒)的实时时钟,但是我希望它在选项卡未打开或什至在计算机关闭时运行。这有可能吗?如果您听说过游戏Cookie单击器,那么我很确定它至少在选项卡完全关闭时才能运行,因此我该如何复制它,如果不能,是否可以使用其他方法制作?数字时钟?

1 个答案:

答案 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();

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