当 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 调用获取的新数据(数据库中的新更新)。我不知道当 Windows 唤醒时,gmail 是如何成功地继续工作的。 @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 不起作用的主要内容,如果未能解决你的问题,请参考以下文章