当我的系统进入休眠模式时,javascript计时器会停止倒计时,当它返回时,它会继续倒计时。
但我的问题是,当我的系统进入休眠模式时,我希望倒计时继续。是否有任何解决方案/解决方法来实现这一目标?
答案 0 :(得分:4)
这不是一个真正的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;
}
}
这不会使计时器正确,但在机器再次启动后会尽快启动。你可以改变你的逻辑以适应你希望如何处理这个问题(例如,如果计时器被解雇,处理方式会有所不同)
如果您需要在恰好间隔时间点亮计时器,它将无济于事......但是当计算机关闭时,这根本不可能。