【发布时间】:2010-12-18 03:08:03
【问题描述】:
可能重复:
Is there a way to detect if a browser window is not currently active?
我有一个每秒调用一次的函数,我只想在当前页面位于前台时运行它,即用户没有最小化浏览器或切换到另一个选项卡。如果用户不看它并可能占用大量 CPU 资源,它就毫无用处,所以我不想只是在后台浪费周期。
有人知道如何在 JavaScript 中说明这一点吗?
注意:我使用 jQuery,所以如果你的答案使用它,那很好:)。
【问题讨论】:
-
+1 想知道答案。我关心的不是 CPU 密集型,而是带宽和服务器密集型。
-
如果你想要一个 Jquery 插件.. github.com/keithhackbarth/jquery-window-active
-
更新:截至 2013 年,所有主流浏览器都支持所谓的visiblity API。有关示例,请参见此处:stackoverflow.com/a/19519701/603003
-
我认为最好的示例是在daniemon.com/tech/webapps/page-visibility 戴上耳机并播放,您会看到(在您开始播放视频后)实施非常到位。
-
使用
document.addEventListener("visibilitychange", onchange);见stackoverflow.com/a/1060034/1066234 和w3.org/TR/page-visibility
标签: javascript jquery