HTML5实现页面切换激活的PageVisibilityAPI使用初探.pdfVIP

HTML5实现页面切换激活的PageVisibilityAPI使用初探.pdf

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
这 篇 文 章 主 要 介 绍 了 HTML5 实 现 页 面 切 换 激 活 的 PageVisibility API 使 用 初 探 ,PageVisibility 可以使我们在切换浏览器 tab 页面时自动停止和播放视频 ,需要的朋友可以 参考下 HTMl5 推出了一个很 “特别”的 API Page Visibility ,之所以说它特别, 是因为这个 API 关注的是一个很少人留意的功能 —— 浏览器标签 ( tab ) 是否被激活。这里必须解释一下, 这个“激活” ,指的是这个标签是否正被用户浏览,或者说是否为当前标签。 那么,这个 API 究竟有些什么用途呢?通常,很多传统的页面在用户没有激活它的时 候,它还会继续工作,例如,当用户正在浏览新闻门户,而他之前打开的 NBA 球赛页面 会继续刷新获取最新结果, 视频网站会继续占用带宽加载资源, 于是, 如果这类不必要的工 作太多了,就会造成很多的资源浪费。因此,这货相当有用: Web 程序每隔一段时间会自动更新页面信息,确保用户获取到及时的信息,但是,当 用户正在浏览其他页面时,可以控制它暂停更新。 视频网站在播放在线视频时会不断加载视频, 直到视频加载完毕, 但是, 当用户正在浏 览其他页面时,可以暂停加载视频资源,节省带宽。 网站首页上有个大幻灯自动播放,当用户浏览其他页面了,就可以暂停播放。 于是,通过 Page Visibility ,我们可以至少达到以下一种或几种的好处: 1.节省服务器资源, Ajax 轮询这类服务器资源占用常常会被忽略,关闭这种请求可以 节省资源。 2.节省内存消耗。 3.节省带宽消耗。 因此,使用 Page Visibility 无论是对于用户还是服务器都有好处。 接下来正式介绍一下这个 API 。Page Visibility 会在浏览器的 document 对象上添加两 个属性 hidden 和 visibilityState 。如果当前的标签被激活了,那么 document.hidden 的值 为 false ,否则为 true 。visibilityState 则有 4 个可能值: hidden :当浏览器最小化、切换标签、电脑锁屏时 visibilityState 值是 hidden visible :当浏览器最顶级上下文( context )的 document 至少显示在一个屏幕当中时, 返回 visible ;当浏览器窗口没有最小化,但是浏览器被其他应用遮挡时,这时也为 visible prerender:当文档被加载到屏幕画面以外或者不可见时返回 prerender,这个是非必要 属性,浏览器可选择性的支持。 unloaded:当文档将要被离开 ( unload ) 时返回 unloaded,浏览器也可选择性的支持 这个属性 另外, document 上会添加 visibilitychange 事件,当 document 的可见性改变时触发该 事件。 好了,介绍完属性,放上一个 Demo (打开后切换标签即可测试) 。 这个 Demo 的作用是监听标签的可见性是否改变 ,并且在标签可见性发生改变时产生 提示。 值得注意的是, 在目前,浏览器对于 Page Visibility 的支持还是通过私有属性支持, 因 此在检测或利用 Page Visibility 提供的属性时需要加上浏览器私有前缀,例如在 Chrome 中检测上面的 visibilityState 属性时,就需要检测 document.webkitVisibi

文档评论(0)

lyf66300 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

版权声明书
用户编号:8020140062000006

1亿VIP精品文档

相关文档