Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/node.js/33.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 在选项卡完全关闭时保持setInterval运行_Javascript_Time_Setinterval_Clock - Fatal编程技术网

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

Javascript 在选项卡完全关闭时保持setInterval运行,javascript,time,setinterval,clock,Javascript,Time,Setinterval,Clock,试图制作一个使用setInterval(基于厘秒)的实时时钟,但我希望它在选项卡未打开或计算机关闭时运行。这可能吗?如果你听说过cookie clicker游戏,我敢肯定它至少在标签完全关闭时运行,那么我如何复制它,如果我不能,还有其他方法可以用来制作数字时钟吗?当标签关闭或机器关闭时,不可能运行代码。最好是定期将信息保存到localStorage,然后每当脚本再次运行时,从localStorage检索保存的信息,并运行所有必要的计算以获得最新信息。或者,如果它像日期一样简单,您可以在每次打开选

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

当标签关闭或机器关闭时,不可能运行代码。最好是定期将信息保存到
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();
const info=localStorage.savedInfo
? parse(localStorage.savedInfo)
:{count:0,date:date.now()};
const now=Date.now();
如果(信息日期<现在){
info.count+=数学楼层((现在-info.date)/1000);
info.date=现在;
}
函数tick(){
info.count++;
控制台日志(信息计数);
info.date=date.now();
localStorage.savedInfo=JSON.stringify(info);
设置超时(勾号,1000);
}
勾选();

Date.now()返回什么,这是一个很长的数字,你知道它写的是什么吗?毫秒、厘米秒等。
Date.now()
返回自历元以来的毫秒数。