iis服务器助手广告广告
返回顶部
首页 > 资讯 > 前端开发 > JavaScript >如何理解及使用HTML5 visibilityState属性
  • 548
分享到

如何理解及使用HTML5 visibilityState属性

2024-04-02 19:04:59 548人浏览 八月长安
摘要

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

本篇内容主要讲解“如何理解及使用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属性”有了更深的了解,不妨来实际操作一番吧!这里是编程网网站,更多相关内容可以进入相关频道进行查询,关注我们,继续学习!

--结束END--

本文标题: 如何理解及使用HTML5 visibilityState属性

本文链接: https://www.lsjlt.com/news/82539.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

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

下载Word文档
猜你喜欢
  • 如何理解及使用HTML5 visibilityState属性
    本篇内容主要讲解“如何理解及使用HTML5 visibilityState属性”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“如何理解及使用HTML5 visib...
    99+
    2024-04-02
  • html5如何使用data-*属性
    这篇文章主要为大家展示了“html5如何使用data-*属性”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“html5如何使用data-*属性”这篇文章吧。实例使...
    99+
    2024-04-02
  • HTML5中data属性如何使用
    这篇文章主要介绍“HTML5中data属性如何使用”的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇“HTML5中data属性如何使用”文章能帮助大家解决问题。   &...
    99+
    2024-04-02
  • HTML5中的Scoped属性如何使用
    这篇文章主要介绍“HTML5中的Scoped属性如何使用”的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇“HTML5中的Scoped属性如何使用”文章能帮助大家解决问题...
    99+
    2024-04-02
  • download属性如何在HTML5中使用
    这篇文章将为大家详细讲解有关download属性如何在HTML5中使用,文章内容质量较高,因此小编分享给大家做个参考,希望大家阅读完这篇文章后对相关知识有一定的了解。download 属性介绍常规的 <a> 标签通过 href ...
    99+
    2023-06-09
  • 如何在html5中使用input属性
    这篇文章给大家介绍如何在html5中使用input属性,内容非常详细,感兴趣的小伙伴们可以参考借鉴,希望对大家能有所帮助。 html5 代码如下: 代码如下:<input type="text" plac...
    99+
    2023-06-09
  • 如何使用HTML5新增属性data-*
    这篇文章将为大家详细讲解有关如何使用HTML5新增属性data-*,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。HTML5新增属性data-*书写实例<div&nb...
    99+
    2024-04-02
  • html5常用标签及属性
    html5 标签可创建丰富网站,包括页眉 ()、导航 ()、内容块 () 和模态对话框 ()。属性用于增强语义和功能,例如唯一标识 (id)、css 类 (class)、提交名称 (na...
    99+
    2024-04-21
    css
  • 如何理解HTML5中的标准属性与自定义属性
    这篇文章将为大家详细讲解有关如何理解HTML5中的标准属性与自定义属性,文章内容质量较高,因此小编分享给大家做个参考,希望大家阅读完这篇文章后对相关知识有一定的了解。正如 HTML5 语法中所阐述的,元素可...
    99+
    2024-04-02
  • html5中margin属性如何用
    本文小编为大家详细介绍“html5中margin属性如何用”,内容详细,步骤清晰,细节处理妥当,希望这篇“html5中margin属性如何用”文章能帮助大家解决疑惑,下面跟着小编的思路慢慢深入,一起来学习新...
    99+
    2024-04-02
  • html5中的input新属性range如何使用
    这篇文章主要讲解了“html5中的input新属性range如何使用”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“html5中的input新属性range如...
    99+
    2024-04-02
  • 如何理解CSS属性中的overflow及相关属性text-overflow
    这篇文章主要介绍“如何理解CSS属性中的overflow及相关属性text-overflow”,在日常操作中,相信很多人在如何理解CSS属性中的overflow及相关属性text-overflow问题上存在...
    99+
    2024-04-02
  • 如何使用HTML5的classList属性操作CSS类
    这篇“如何使用HTML5的classList属性操作CSS类”文章,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要参考一下,对于“如何使用HTML5的classList属性操作CSS类”,小编整理了以下知识点,请大家...
    99+
    2023-06-09
  • HTML5中表单的常用属性及新属性是什么
    这篇文章主要介绍了HTML5中表单的常用属性及新属性是什么,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。 HTML5 新的表单属性 HT...
    99+
    2024-04-02
  • HTML5中表单的常用属性及新属性有哪些
    HTML5中表单的常用属性及新属性有哪些,相信很多没有经验的人对此束手无策,为此本文总结了问题出现的原因和解决方法,通过这篇文章希望你能解决这个问题。HTML5 新的表单属性HTML5 的 <form...
    99+
    2024-04-02
  • jquery如何移除html5属性
    本篇内容主要讲解“jquery如何移除html5属性”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“jquery如何移除html5属性”吧!jquery移除htm...
    99+
    2024-04-02
  • HTML5中的如何强制下载属性download使用
    本篇文章为大家展示了HTML5中的如何强制下载属性download使用,内容简明扼要并且容易理解,绝对能使你眼前一亮,通过这篇文章的详细介绍希望你能有所收获。HTML5 的 Download 属性用来强制浏...
    99+
    2024-04-02
  • HTML5新的表单属性有哪些及怎么使用
    本篇内容主要讲解“HTML5新的表单属性有哪些及怎么使用”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“HTML5新的表单属性有哪些及怎么使用”吧! 新的 fo...
    99+
    2024-04-02
  • HTML5中autofocus属性使用介绍
    本篇内容主要讲解“HTML5中autofocus属性使用介绍”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“HTML5中autofocus属性使用介绍”吧!代码如...
    99+
    2024-04-02
  • HTML5的placeholder属性怎么使用
    这篇文章主要介绍“HTML5的placeholder属性怎么使用”的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇“HTML5的placeholder属性怎么使用”文章能...
    99+
    2024-04-02
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作