页面可见性API

193 阅读2分钟

因此,当一个用户浏览互联网时,他/她一般会在浏览器中打开一个以上的标签。每次只有一个标签或所有标签打开的网页是可见的。因此,所有那些用户不可见的标签,如果做的是与用户无关的工作,就有些浪费电池、周期和移动数据了。作为一个聪明、机灵的应用程序开发者,你可能想关注这些事件,而页面可见度API可以帮助你做到这一点。

页面可见性API有助于识别一个标签或网页是活动的、隐藏的还是在后台的,这样就可以根据标签的可见性状态来采取适当的行动。

属性。

Document.hidden: 返回true或false。如果页面对用户是隐藏的,则返回true,否则返回false。

Document.visibilityState: 返回一个字符串,表示标签的当前可见性状态。

值如下。

visibile- 页面的内容对用户是可见的。

hidden- 页面内容对用户不可见。

prerender- 该页面的内容正在被预渲染。

**unloaded -**该页面已从内存中卸载。

注意:并非所有的浏览器都支持prerender和unloaded值。请留意这些浏览器。

Document.onvisibilityChange : 一个事件监听器,在标签的状态改变时执行提供给它的处理函数。

`document.onvisibilityChange("visibilitychange",handleFunction)'。

使用案例。

页面可见性api的使用情况如下。

  1. 如果用户不看视频,视频可以暂停(标签的状态不可见),节省用户昂贵的移动数据和手机电池。当你想在用户更换标签时,在用户离开的地方恢复视频或内容时,这也很有帮助,这样用户就不会错过信息或内容。
  2. 旋转木马可以暂停(不会推进到下一个幻灯片)。
  3. 如果用户不看信息,显示信息仪表板的应用程序就不必从服务器上获取最新的信息,从而节省了服务器和客户端机器的周期,也节省了带宽。
  4. 它还可以用来监测用户在检查过程中的行为,以检查用户是否在更换标签。

请注意,某个用例是否适用于你的应用,完全取决于你的要求。可能有一个用例,你不想在你的应用程序上暂停视频(如youtube)。

例外情况。

  1. 正在播放音频的标签。
  2. 正在使用实时网络连接的标签。

参考资料。

页面可见性API - Web APIs | MDN

我们永远感谢你的反馈、建议和改进。

如果你在你的应用程序中使用了这个api的任何其他功能,不要忘记分享。


Page Visibility API最初发表于Nerd For Techon Medium,在那里人们通过强调和回应这个故事来继续对话。