javascript:监听浏览器页签切换

news2024/9/30 0:49:18

监听页面的可见性变化,在很多场景下非常实用,比如跟踪用户行为、节省资源、优化性能等。

1 代码示例

		document.addEventListener("visibilitychange", () => {
  			if (document.visibilityState === "visible") {
    			alert("当前页面已切换,变得可见了!");
  			}
		});

效果如下:

刷新页面不会触发,只有进行浏览器页签切换的时候才会触发。

2 代码解析

document.addEventListener("visibilitychange", () => {...})

使用 addEventListener 方法为文档对象 document 添加一个事件监听器,监听的事件类型为 visibilitychange 。

当页面的可见性状态发生改变时,这个事件会被触发。

if (document.visibilityState === "visible") {...}

当 visibilitychange 事件被触发后,检查 document.visibilityState 的值,以防止只做一次浏览器页签切换时,会触发两次事件的问题。

document.visibilityState是一个非常有用的属性,它提供了关于文档当前可见性状态的信息,在现代浏览器中已经得到了广泛的支持。

它有三种取值:

visible:

当文档内容至少一部分在屏幕上可见时,document.visibilityState 的值为 visible。

这意味着用户可以看到页面的一部分或全部内容。例如,当用户正在浏览网页,并且该网页处于当前的浏览器窗口中可见的状态。

hidden:

当文档完全不可见时,该属性的值为 hidden。

这可能发生在多种情况下,比如用户切换到了其他标签页、最小化了浏览器窗口或者操作系统进入了锁屏状态等。在这些情况下,网页对于用户来说是不可见的,浏览器可以采取一些优化措施,例如暂停不必要的动画、减少后台任务的资源占用等。

prerender:

这个状态表示页面正在预渲染。预渲染是一种浏览器技术,它在后台预先加载和渲染一个页面,以便在用户实际访问该页面时能够更快地显示。

然而,目前并非所有的浏览器都支持预渲染,并且使用预渲染也需要谨慎考虑,因为它可能会消耗一定的系统资源

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2178250.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

上交所系统被股民买崩了?原因竟然是...

在A股市场迎来久违的牛市之际,上海证券交易所(上交所)却在关键时刻遭遇了技术挑战。9月27日,上交所的交易系统出现了罕见的宕机现象,持续时间长达两个小时,导致投资者在火热的交易期间无法正常进行交易操作…

通信工程学习:什么是OFDM正交频分复用

OFDM:正交频分复用 OFDM(Orthogonal Frequency Division Multiplexing,正交频分复用)是一种在通信领域中广泛应用的多载波调制技术。该技术通过将高速数据流分割成多个低速子流,并在不同频率上同时传输这些子流&#x…

论文笔记:Gradient Episodic Memory for Continual Learning

1. Contribution 提出了一组指标来评估模型在连续数据上的学习情况。这些指标不仅通过测试准确性来表征模型,还通过其跨任务迁移知识的能力来表征模型。针对持续学习任务,提出了GEM模型(Gradient Episodic Memory),它…

【预备理论知识——1】深度学习:概率论概述

简单地说,机器学习就是做出预测。 概率论 掷骰子 假设我们掷骰子,想知道看到1的几率有多大,而不是看到另一个数字。 如果骰子是公平的,那么所有六个结果{1,…, 6}都有相同的可能发生, 因此我们可以说 1 发生的概率为1…

Linux date命令(用于显示和设置系统的日期和时间,不仅可以显示时间,还能进行复杂的时间计算和格式化)

文章目录 深入探讨 Linux Date 命令1. Date 命令详细功能解析1.1 命令概述1.2 命令语法 2. 时间显示与格式化2.1 标准时间输出2.2 自定义格式输出 3. 设置系统日期和时间3.1 基本用法3.2 注意事项 4. 实用示例与脚本应用4.1 生成时间戳秒级时间戳毫秒时间戳 4.2 时间戳转换4.3 …

什么是后仿

什么是后仿 参考 查了一圈发现网上对post netlist simulation 介绍的比较少,今天和大家聊聊post netlist simulation。 首先什么是post netlist simulation(后面简称 postsim )? Netlist simulation 有些公司也叫gate level simulation,是指将…

问:全国产业园数量增长,对中小企业意味着什么?

随着全国产业园数量的持续增长,这一趋势无疑为中小企业带来了前所未有的机遇与可能。产业园作为产业集聚的重要载体,不仅为中小企业提供了更广阔的发展空间,还通过资源共享、成本降低、创新协同等方式,助力企业快速成长。 对于中…

高效的视频压缩标准H.264介绍,以及H.264在视频监控系统中的应用

目录 一、概述 二、 工作原理 三、技术特点与优势 1、高效压缩率 2、高质量视频 3、错误恢复能力 4、灵活性 四、编解码过程 1、编码过程 2、解码过程 五、帧类型与结构 1、I帧 2、P帧 3、B帧 六、应用与优势 1、节省存储空间和带宽 2、提高视频质量 3、适应…

中间件技术

在Java开发中,中间件技术是一种非常关键且广泛使用的技术。中间件通常被定义为位于操作系统、网络和数据库之上的软件层,用于简化分布式系统的开发、部署和管理。它们提供了一系列服务,如消息传递、事务管理、安全控制等,以帮助开…

Eth-trunk的介绍以及实验配置

目录 技术背景 Eth-Trunk概念 LACP模式下优先级 LACP的抢占机制 Eth-Trunk 配置 LACP模式 手工模式 Eth-Trunk接口负载分担 技术背景 随着网络中部署的业务量不断增长,单条物理链路的带宽已不能满足正常的业务流量需求。这时可以选择使用更高带宽的接口板或…

招联金融内推-2025校招

【投递方式】 直接扫下方二维码,或点击内推官网https://wecruit.hotjob.cn/SU61025e262f9d247b98e0a2c2/mc/position/campus,使用内推码 igcefb 投递) 【招聘岗位】 后台开发 前端开发 数据开发 数据运营 算法开发 技术运维 软件测试 产品策…

yolov8/9/10模型在安全帽、安全衣检测中的应用【代码+数据集+python环境+GUI系统】

yolov8910模型安全帽、安全衣检测中的应用【代码数据集python环境GUI系统】 yolov8/9/10模型在安全帽、安全衣检测中的应用【代码数据集python环境GUI系统】 背景意义 安全帽和安全衣在工业生产、建筑施工等高风险作业环境中是保护工人免受意外伤害的重要装备。然而&#xff0…

推荐一款良心的视频去水印在线工具!!!

推荐一款良心的视频去水印在线工具!!! 去水印工具是专门设计来处理图像和视频中不需要的水印、标志、文字或其他元素的软件或在线服务。这些工具通过智能算法识别并移除特定元素,同时尽量保持原始内容的画质和细节。 应用场景 版权清理:去除网络上获取…

SpringBoot项目请求不中断动态更新代码

在开发中,有时候不停机动态更新代码热部署是一项至关重要的功能,它可以在请求不中断的情况下下更新代码。这种方式不仅提高了开发效率,还能加速测试和调试过程。本文将详细介绍如何在 Spring Boot 项目在Linux系统中实现热部署,特…

GPT与大模型行业落地实践探索

简介 本课程探讨GPT和大模型技术在行业中的实际应用和发展。课程将涵盖GPT的基础知识、原理、及其在行业中的应用案例,如财报分析和客服机器人。重点在于结合实际案例中的使用效果,讲解如何利用GPT的API开发企业级应用以及利用更高级的功能构造AI Agent。…

根据给定的相机和镜头参数,估算相机的内参。

1. 相机分辨率和传感器尺寸 最高分辨率:6000 4000 像素传感器尺寸:22.3 mm 14.9 mm 2. 计算像素大小 需要计算每个像素对应的实际尺寸(mm/pixel): 水平方向像素大小: 垂直方向像素大小: …

TypeScript 基本使用指南【前端 26】

TypeScript 基本使用指南 引言 TypeScript 是 JavaScript 的一个超集,它添加了类型系统和一些其他特性,使得开发大型应用时更加高效和可靠。TypeScript 代码最终会被编译成普通的 JavaScript 代码,这意味着你可以在任何支持 JavaScript 的环…

作家依靠AI一年内创作120部作品

近期,Tim Boucher因声称自己依托人工智能(AI)完成了逾120部作品而在社交网络上引起广泛关注。 Boucher的这种创作手法引发了众多讨论和争议。一些批评者对他依靠AI写作表示不满,认为这种做法缺乏诚实性,甚至涉嫌抄袭。…

区间预测 | Matlab实现ARIMA-KDE的时间序列结合核密度估计区间预测

目录 效果一览基本介绍程序设计参考资料 效果一览 基本介绍 1.Matlab实现ARIMA-KDE的时间序列结合核密度估计区间预测,ARIMA的核密度估计下置信区间预测。 2.含点预测图、置信区间预测图、核密度估计图,区间预测(区间覆盖率PICP、区间平均宽度百分比PIN…

Mac电脑快速回复的神器-快捷短语

我在使用Mac的时候,很多常用的句子、词语或者一些代码都需要手动输入,拷贝粘贴总是会被新内容覆盖,在需要高频输入的时候这样效率太低了,然后我就找到一个可以快速输入的神器——快捷短语 快捷短语是Mac上的一款非常强大的快速回…