我的编程空间,编程开发者的网络收藏夹
学习永远不晚

如何理解及使用HTML5 visibilityState属性

短信预约 -IT技能 免费直播动态提醒
省份

北京

  • 北京
  • 上海
  • 天津
  • 重庆
  • 河北
  • 山东
  • 辽宁
  • 黑龙江
  • 吉林
  • 甘肃
  • 青海
  • 河南
  • 江苏
  • 湖北
  • 湖南
  • 江西
  • 浙江
  • 广东
  • 云南
  • 福建
  • 海南
  • 山西
  • 四川
  • 陕西
  • 贵州
  • 安徽
  • 广西
  • 内蒙
  • 西藏
  • 新疆
  • 宁夏
  • 兵团
手机号立即预约

请填写图片验证码后获取短信验证码

看不清楚,换张图片

免费获取短信验证码

如何理解及使用HTML5 visibilityState属性

本篇内容主要讲解“如何理解及使用HTML5 visibilityState属性”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“如何理解及使用HTML5 visibilityState属性”吧!

这里必须解释一下,这个“激活”,指的是这个标签是否正被用户浏览,或者说是否为当前标签。

那么,这个 API 究竟有些什么用途呢?通常,很多传统的页面在用户没有激活它的时候,它还会继续工作,例如,当用户正在浏览新闻门户,而他之前打开的 NBA 球赛页面会继续刷新获取最新结果,视频网站会继续占用带宽加载资源,于是,如果这类不必要的工作太多了,就会造成很多的资源浪费。因此,这货相当有用:

1.Web 程序每隔一段时间会自动更新页面信息,确保用户获取到及时的信息,但是,当用户正在浏览其他页面时,可以控制它暂停更新。
 2.视频网站在播放在线视频时会不断加载视频,直到视频加载完毕,但是,当用户正在浏览其他页面时,可以暂停加载视频资源,节省带宽。
 3.网站首页上有个大幻灯自动播放,当用户浏览其他页面了,就可以暂停播放。

于是,通过 Page Visibility ,我们可以至少达到以下一种或几种的好处:

1.节省服务器资源,Ajax 轮询这类服务器资源占用常常会被忽略,关闭这种请求可以节省资源。
 2.节省内存消耗。
 3.节省带宽消耗。

因此,使用 Page Visibility 无论是对于用户还是服务器都有好处。

接下来正式介绍一下这个 API 。Page Visibility 会在浏览器的 document 对象上添加两个属性 hidden 和 visibilityState 。如果当前的标签被激活了,那么 document.hidden 的值为 false ,否则为 true 。visibilityState 则有4个可能值:

1.hidden:当浏览器最小化、切换标签、电脑锁屏时 visibilityState 值是 hidden
 2.visible:当浏览器最顶级上下文(context)的 document 至少显示在一个屏幕当中时,返回 visible;当浏览器窗口没有最小化,但是浏览器被其他应用遮挡时,这时也为 visible
 3.prerender:当文档被加载到屏幕画面以外或者不可见时返回 prerender,这个是非必要属性,浏览器可选择性的支持。
 4.unloaded:当文档将要被离开 ( unload ) 时返回 unloaded,浏览器也可选择性的支持这个属性

另外,document 上会添加 visibilitychange 事件,当 document 的可见性改变时触发该事件。

好了,介绍完属性,放上一个使用实例(保存到一个HTML文件,打开后切换标签即可测试效果)。

代码如下:

 <!doctype html>
 <html lang="zh-CN">
 <head>
 <meta charset="UTF-8" />
 <title>测试 HTML5 Page Visibility API</title>
 </head>
 <body></p> <p> <div id="showTip"></div>
 <script>
 function browerKernel(){
 var result;
 ['webkit', 'moz', 'o', 'ms'].forEach(function(prefix){</p> <p> if( typeof document[ prefix + 'Hidden' ] != 'undefined' ){
 result = prefix;
 }
 });
 return result;
 }
 function init(){
 prefix = browerKernel();
 var showTip = document.getElementById('showTip');
 document.addEventListener( prefix  + 'visibilitychange', function onVisibilityChange(e){
 var tip = null;
 if( document[ prefix + 'VisibilityState' ] == 'hidden' ) tip = '<p>离开页面</p>';
 else if( document[ prefix + 'VisibilityState' ]  == 'visible' ) tip = '<p>进入页面</p>';
 showTip.innerHTML = showTip.innerHTML + tip;
 });
 }
 window.onload = init();
 </script>
 </body>
 </html>

这个实例的作用是监听标签的可见性是否改变 ,并且在标签可见性发生改变时产生提示。

值得注意的是,在目前,浏览器对于 Page Visibility 的支持还是通过私有属性支持,因此在检测或利用 Page Visibility 提供的属性时需要加上浏览器私有前缀,例如在 Chrome 中检测上面的 visibilityState 属性时,就需要检测 document.webkitVisibilityState 而不是 document.visibilityState 。所以,Demo 中会首先检测浏览器类型,然后才使用 Page Visibility 的 API 。

到此,相信大家对“如何理解及使用HTML5 visibilityState属性”有了更深的了解,不妨来实际操作一番吧!这里是编程网网站,更多相关内容可以进入相关频道进行查询,关注我们,继续学习!

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

如何理解及使用HTML5 visibilityState属性

下载Word文档到电脑,方便收藏和打印~

下载Word文档

猜你喜欢

download属性如何在HTML5中使用

这篇文章将为大家详细讲解有关download属性如何在HTML5中使用,文章内容质量较高,因此小编分享给大家做个参考,希望大家阅读完这篇文章后对相关知识有一定的了解。download 属性介绍常规的 标签通过 href 实现链接跳转

如何在html5中使用input属性

这篇文章给大家介绍如何在html5中使用input属性,内容非常详细,感兴趣的小伙伴们可以参考借鉴,希望对大家能有所帮助。 html5 代码如下: 代码如下:
2023-06-09

如何使用HTML5的classList属性操作CSS类

这篇“如何使用HTML5的classList属性操作CSS类”文章,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要参考一下,对于“如何使用HTML5的classList属性操作CSS类”,小编整理了以下知识点,请大家
2023-06-09

如何在HTML5中使用form控件和表单属性

如何在HTML5中使用form控件和表单属性?相信很多没有经验的人对此束手无策,为此本文总结了问题出现的原因和解决方法,通过这篇文章希望你能解决这个问题。第一个知识点:我们常见的表单验证有哪些呢  text  文本框标签  password
2023-06-09

编程热搜

目录