Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/377.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 具有性能的计时器。now()_Javascript - Fatal编程技术网

Javascript 具有性能的计时器。now()

Javascript 具有性能的计时器。now(),javascript,Javascript,我想使用performance.now实现计时器,因为Date.now取决于用户的时钟性能。now没有,而Date.now-way可能会在用户更改系统时钟时使计时器崩溃 我想把定时器存储在本地存储器中。当用户关闭选项卡或浏览器并打开它时,计时器必须恢复 重要条件:我想考虑关闭浏览器/选项卡的时间。例如,当计时器值为10秒时,用户关闭浏览器。10秒后,用户打开浏览器-计时器值应为20秒 这就是我面临的问题 这是不使用localStorage的代码: const timerNode=documen

我想使用performance.now实现计时器,因为Date.now取决于用户的时钟性能。now没有,而Date.now-way可能会在用户更改系统时钟时使计时器崩溃

我想把定时器存储在本地存储器中。当用户关闭选项卡或浏览器并打开它时,计时器必须恢复

重要条件:我想考虑关闭浏览器/选项卡的时间。例如,当计时器值为10秒时,用户关闭浏览器。10秒后,用户打开浏览器-计时器值应为20秒

这就是我面临的问题

这是不使用localStorage的代码:

const timerNode=document.getElementById'timer'; const initialTimestamp=performance.now; setInterval=>{ 常数秒=getSecondsinitialTimestamp; timerNode.innerHTML=秒; }, 200; 函数getSecondsinitialTimestamp{ 返回Math.roundperformance.now-initialTimestamp/1000; } 是的,您可以使用localStorage在浏览器会话中保持此状态

您可以使用setItem设置初始时间,并使用getItem在新的浏览器会话中访问它。当新浏览器会话启动时,您将检查是否存在以前的初始时间。如果有,就使用它;如果没有,就创建它

var initialTimestamp = localStorage.getItem('initialTimestamp');

// If we previously set an initialTimestamp, convert it from string to number.
if (initialTimestamp) {
  initialTimestamp = parseInt(initialTimestamp);
}

// If we never previously set an initial timestamp, create one now.
else {
  initialTimestamp = performance.now();
  localStorage.setItem('initialTimestamp', initialTimestamp);
}

我认为,在长时间内获得可靠时间的唯一方法是查询服务器。不确定日期是什么意思。现在取决于用户的时钟,日期是什么时候。现在返回一个…您可以将秒值存储在localStorage中,并继续更新,但正如@DenysSéguret提到的,这不太可靠。@JaredSmith我更新了我的问题,以演示日期问题。现在,对于不依赖于用户时钟设置的计时器,您的用例是什么?客户端的一切都可能被搞乱。