我有定期执行活动的JavaScript.当用户没有看到该站点时(即窗口或选项卡没有焦点),最好不要运行.
有没有办法使用JavaScript?
我的参考点:如果您使用的窗口未处于活动状态,则Gmail聊天会播放声音.
可能重复:
有没有办法检测浏览器窗口当前是否处于活动状态?
我有一个每秒调用的函数,如果当前页面在前台,我只想运行,即用户没有最小化浏览器或切换到另一个选项卡.如果用户没有看到它并且可能是CPU密集型的话,它没有用处,所以我不想在后台浪费周期.
有谁知道如何在JavaScript中讲述这个?
注意:我使用jQuery,所以如果你的答案使用它,那很好:).
其他 许多答案也涵盖了正在运行的Javascript脚本如何判断其当前窗口是否处于活动状态。但是,这是一组相当严格的选择,并且之间没有区别(例如)
尽管在后两种情况下该网页仍然对用户可见,但所有这些都被视为无效。
尽管有证据表明,鉴于网络浏览器沙箱的工作原理,从技术上讲这是不可能的,但我仍然希望能够发现上述两者之间的差异。例如,为(1)或(2)暂停动画,但为(3)或(4)保留动画。我想知道是否Javascript(加上框架,我想是WebAssembly)提供了一种机制来确定这一点-否则,是否有任何特定的浏览器具有从一页的javascript代码中进行确定的机制。
我有一个基于网络的仪表板,可以向医院的护士等显示关键的时间敏感信息.面临的挑战是,如果仪表板未打开或最小化,它们将无法看到消息并能够响应.我目前跟踪应用程序运行的时间百分比(它每10秒通过AJAX轮询一次新消息,这样我就可以很容易地看到它每小时执行的请求数量等等),但这并不能告诉我应用程序是否已最小化.
一种方法是使用onfocus/ onblur,但效果有限,因为部署它的大多数计算机都是双监视器机器,并且它们通常会在另一个屏幕上使用临床信息系统时在一个屏幕上保持仪表板打开.使用焦点/模糊方法,此状态将被视为"未聚焦",但我希望将其视为"打开"我的统计数据.
检测窗口可见性的任何想法?我想可能包括一个微小的Flash"像素"并检测是否可见 - 任何其他想法?