当 Windows 进入睡眠模式然后唤醒时 setTimeout 不起作用

Posted

技术标签:

【中文标题】当 Windows 进入睡眠模式然后唤醒时 setTimeout 不起作用【英文标题】:setTimeout is not working when Windows goes to sleep mode and then wake up 【发布时间】:2011-04-18 23:50:53 【问题描述】:

我在 Chrome 中注意到了这一点。有人知道出了什么问题或解决方法吗?

【问题讨论】:

【参考方案1】:

当 Chrome 进入后台时,它会冻结 javascript 执行。当它在 OS X 中最小化到 Dock 时,我在图纸上注意到了这一点。


据我所知,没有解决方法。如果您告诉我们您正在尝试做什么,那么您可能会做一些事情。

【讨论】:

我尝试轮询服务器以获取每 10 秒通过 ajax 调用获取的新数据(数据库中的新更新)。我不知道 gmail 在 Windows 唤醒时实际上是如何成功地继续工作的。 @Dave:首先投票是可怕的,应该是最后的手段。试试WebSockets。我也猜想谷歌会放某种检查代码来重新创建间隔。 @JoshK - Websocket 支持还不够广泛;并且并非所有网络服务器都很好地支持更通用的 Comet/long-poll 方法。【参考方案2】:

您可以改用setInterval - 它会继续运行。如果您需要一次性解决方案,请使用clearInterval 删除计时器。 setInterval 将在本应触发事件时计算机处于睡眠状态时立即触发。我在 Chrome、Firefox 和 Internet Explorer 中测试了这种行为。例如,查看http://blaeul.de/de/content/javascript-timer-test 及其来源。

【讨论】:

以上是关于当 Windows 进入睡眠模式然后唤醒时 setTimeout 不起作用的主要内容,如果未能解决你的问题,请参考以下文章

当计算从睡眠模式或待机模式唤醒时,基于图像的 jframe 变为白色

如何在睡眠模式下唤醒 Android Wear?

当手机从睡眠中唤醒时加载应用程序/活动

从睡眠模式唤醒时不会播放音频(android)

我的惠普笔记本进入睡眠模式后无法唤醒。。。。

如何将 Mac 置入睡眠状态或唤醒 Mac?