当我的系统进入休眠模式时,javascript计时器停止倒计时,当它返回时,它继续倒计时。
但我的问题是,我希望倒计时继续当我的系统进入休眠模式。是否有任何解决方案/变通方法来实现这一目标?
这不是javascript的问题。
当你合上盖子时,你的笔记本电脑处于休眠状态,这意味着CPU处于关闭状态,无法进行计算。
你有三个选择
1)合上盖子让笔记本电脑一直开着,或者不合上盖子
2)停止在客户端执行定时器任务,而只是在服务器端启动一个定时器。根据你想要实现的目标,这可能是相关的,也可能不是相关的,但这是知道用户是否会打开他们的盖子/打开浏览器/打开机器等的唯一方法。
3)重新编写代码,而不是使用计时器说"等待十秒",而是将其设置为使用绝对时间,就像下面这样(这是一个模糊的伪代码来演示我的意思,不是一个工作的解决方案)
var targetTime;
var running = false;
startTimer(timeInSeconds)
{
targetTime = now() + timeInSeconds;
running = true;
}
while(running)
{
if(now() > targetTime)
{
doTimerThings();
running = false;
}
}
这不会使定时器精确无误,但会在机器再次启动后尽快触发。你可以改变你的逻辑,以适应你希望如何处理这个(例如处理不同的事情,如果计时器被触发晚)
如果你需要在精确的间隔时间内触发计时器,这将无济于事。但当电脑关闭时,这是不可能的。