有趣的API:Page Visibility API 页面可见性

今天在知乎上看到一篇文章,说到了用window.blurwindow.focus事件来动态改变网页的title, Page Visibility这么强大的功能只能怀才不遇api

Page Visibility API

在使用浏览器的时,用户经常是打开多个网页,当一个网页是可见或点击选中的状态时 Page Visibility API 能够让你获取到这种状态。Page Visibility作的事情很简单,就是判断页面是否课件。浏览器

Page Visibility 全部属性

两个属性,一个方法wordpress

document.hidden(只读)
返回一个布尔值,显示当前页面是否不可见。动画

document.visibilityState (只读)
是一个用来展现文档可见性状态的字符串。可能的值:spa

  • visible : 页面内容至少是部分可见。 在实际中,这意味着页面是非最小化窗口的前景选项卡。操作系统

  • hidden : 页面内容对用户不可见。 在实际中,这意味着文档能够是一个后台标签,或是最小化窗口的一部分,或是在操做系统锁屏激活的状态下。code

  • prerender : 页面内容正在被预渲染且对用户是不可见的(被document.hidden当作隐藏). 文档可能初始状态为prerender,但毫不会从其它值转为该值。 注释:浏览器支持是可选的。视频

  • unloaded : 页面正在从内存中卸载。 注释:浏览器支持是可选的事件

visibilitychange 页面状态切换时的事件。图片

focus、blur事件的一些区别。

  • focus、blur会在点击地址栏,书签时触发。Visibility不会触发
    图片描述

  • 多窗口模式下,Visibility不会触发。
    图片描述

  • 页面直接最小化,focus、blurVisibility正常触发。
    图片描述

牢记定义: 文档是一个后台标签,或是最小化窗口的一部分,或是在操做系统锁屏激活的状态下。

应用场景

  • 使用 Visibility能够节省资源,当页面不可见的时候,就能够让页面休息休息了,一些动画也能够暂停,或者播放的视频暂停,很是贴心。

  • 或者一个打开一个站点多个页面,在其中一个页面登陆,切换到其它页面的时候就能够自动登陆。

兼容性

通过了几年的发展,如今Page Visibility API 的兼容性已经很是良好,能够放心使用。
图片描述

参考资料

张鑫旭博客Page Visibility(页面可见性) API介绍、微拓展

MDN Page_Visibility_API

相关文章
相关标签/搜索