首页
学习
活动
专区
工具
TVP
发布

监控浏览器tab切换或最小化事件

背景:最近遇到1个项目,业务方调用了后端1个开销较大接口,用于页面实时监控一些关键指标,页面是自动定时请求接口刷新数据,随着用户增加,后端压力比较大,分析发现,很多用户日常使用过程中,并不是一直盯着屏幕看...,有时候人离开了(比如下班),或者把监控页切到后台或最小化,干其它事去了,但是页面上定时请求仍然在一直跑着,造成了相当于部分无用请求。...优化思路:当浏览器tab最小化,或切到后台时,停止自动刷新,等切回来时,再恢复自动刷新。...", new Date()) 5 }, 5000) 6 7 console.log("timer1:", timer) 8 9 // 监听浏览器切换事件...document.addEventListener('visibilitychange', () => { 11 // 离开当前tab标签(不管是切到其它tab,还是最小

51510

0.5M安装包,最小浏览器颠覆你IT观

浏览器,一点就够了“ 这是我使用一点浏览器发自内心感叹(回头想一想,我觉得这句话可以投稿给一点浏览器做绝佳广告词了)。...一点浏览器是搜狗于2015年3月23日推出全新产品,其安装包仅有约0.5M(相当于一张图片)大小,号称全球最小浏览器软件,并且独家推出“右键快速关闭网页”功能。...后来由于在QQ中链接总是会在QQ浏览器打开,而QQ浏览器我是不常用,也不是默认浏览器,所以每打开一个QQ中链接,QQ浏览器都跑出来。后来,腻了,烦了,于是就放手了。...一点浏览器UI 一点浏览器内核也是IE,但是它启动速度和网页打开流畅度远远超过了我电脑上装IE11浏览器,而且UI清新简洁、窗口动效做得也相当棒。...虽说IE浏览器流畅度广受诟病,但是有时候考虑到网页兼容性问题我们不得不把它当做备用浏览器。所以,我们不妨用一点浏览器将IE替换掉。

5.5K20
您找到你想要的搜索结果了吗?
是的
没有找到

document.visibilityState 监听浏览器最小化,tab标签栏之间切换状态

本文为joshua317原创文章,转载请注明:转载自joshua317博客 https://www.joshua317.com/article/52 document.visibilityState 监听浏览器最小化...页面隐藏包括 页面在后台标签页中 或者 浏览器最小化 (注意,页面被其他软件遮盖并不算隐藏,比如打开 sublime 遮住了浏览器)。...document.visibilityState:表示下面 4 个可能状态值 hidden:页面在后台标签页中或者浏览器最小化 visible:页面在前台标签页中 prerender:页面在屏幕外执行预渲染处理...页面隐藏包括 页面在后台标签页中 或者 浏览器最小化 (注意,页面被其他软件遮盖并不算隐藏,比如打开 sublime 遮住了浏览器)。...document.visibilityState:表示下面 4 个可能状态值 hidden:页面在后台标签页中或者浏览器最小化 visible:页面在前台标签页中 prerender:页面在屏幕外执行预渲染处理

1.3K20

最小K个数

题目: 思路: 思路一:直接利用快速排序方法对数组进行排序,时间复杂度为O(NlogN),简单便捷,排完序之后便是有序数组,直接去前K个数出来 思路二:根据一次快排(Partition)想法,我们知道一次随机快速排序可以确定一个有序位置...,这个位置左边都小于这个数,右边都大于这个数,我们如果能找到随机快速排序确定位置等于k-1那个位置,那么0-k-1个数就是我们要找数。...如果Partition确定位置大于K-1,说明k-1这个位置在它左边,我们继续在左边进行查找。 缺点: 这种方法时间复杂度虽然是O(n),但是找出来最小K个数却不是排序过。...而且这种方法有个限制,就是必须修改给数组。 思路三:利用大顶堆或小顶堆思路,就是循环一遍数组,先直接将数组前K个数直接塞入数组TEMP,构建堆。...然后从第K个数开始循环,先取出TEMP第k-1个数值(即最大或者最小),进行比较,如果符合条件(即大于或小于),将堆K-1踢出,将新值放入,重新构建堆。重复以上步骤直至循环结束。

28110

最小元素

1 问题 如何利用python在常数时间里检测到最小元素栈。 2 方法 用一个变量来记录最小值,需要时候直接取到就可以实现目标。...借助一个辅助栈,由于入栈出栈操作是动态,所以最小值也是动态,我们可以用一个栈来维护每一个状态下最小值。...当第一个元素入栈时,它就是当前栈最小值,于是Push到min_stack #2....当入栈元素大于min_stack栈顶元素时,说明该元素入栈之后当前状态最小值没有发生改变,因此将原来最小值(就是min_stack栈顶元素)push到min_stack中 def push(...遍历栈或者用一些排序方式固然可以找到最小值,但是无法在满足常数时间要求。我们这里借助一个辅助栈,由于入栈出栈操作是动态,所以最小值也是动态,我们可以用一个栈来维护每一个状态下最小值。

4210

最小 k 个数!

今天继续来学习《剑指Offer》系列一道经典题目,依旧给出了非常详细题解和精美的配图与动画。 一、题目描述 输入整数数组 arr ,找出其中最小 k 个数。...例如,输入 4、5、1、6、2、7、3、8 这 8 个数字,则最小 4 个数字是 1、2、3、4 。...而整体排序算法有很多种选择,比如冒泡、选择、快速、堆排序等等。 这种暴力解法肯定不是面试官想要回答,因为我们没有利用好题目的全部条件。 再读一下这句话:找出其中最小 k 个数。...所在下标 index 与 k 关系 * 1)、index 小于 k,说明从 0 到 index 这个左侧区间中元素不足 k 个,那么最小 k 个数肯定部分是在这个区间,还需要继续在右侧区间中去寻找出一部分元素来填充...,因此对对右侧区间进行快速排序即可 * 2)、index 等于 k,说明从 0 到 index 这个区间中所有元素就是那些最小 k 个数,将其返回。

34220

最小 K 个数

题目描述 描述 给定一个长度为 n 可能有重复值数组,找出其中不去重最小 k 个数。...例如数组元素是4,5,1,6,2,7,3,8这8个数字,则最小4个数字是1,2,3,4(任意顺序皆可)。...] 说明: 返回最小4个数即可,返回[1,3,2,4]也可以 解题思路 大小为 K 最小堆 时间复杂度:O(NlogK) 空间复杂度:O(K) 特别适合处理海量数据 维护一个大小为 K 最小堆过程如下...在添加一个元素之后,如果大顶堆大小大于 K,那么将大顶堆堆顶元素去除,也就是将当前堆中值最大元素去除,从而使得留在堆中元素都比被去除元素来得小。...应该使用大顶堆来维护最小堆,而不能直接创建一个小顶堆并设置一个大小,企图让小顶堆中元素都是最小元素。

35120

长度最小子数组

长度最小子数组 给定一个含有n个正整数数组和一个正整数s ,找出该数组中满足其和 ≥ s长度最小连续子数组,并返回其长度。如果不存在符合条件连续子数组,返回0。...实例 输入: s = 7, nums = [2,3,1,2,4,3] 输出: 2 解释: 子数组 [4,3] 是该条件下长度最小连续子数组。...0 : target; }; 思路 采用双指针方式,构成一个动态滑动窗口,其中start为首指针,end为尾指针,Infinity是一个表示无穷大数值,初始时窗口大小为0,sum为0则尾指针右移,...然后继续循环,当sum < s时候尾指针不断右移,因为窗口间值一直小于给定s,只有尾指针右移扩大窗口才有可能使窗口间和大于等于s,当窗口间值和大于s时,那么就使首指针右移用以减小窗口数量...,只有不断减少窗口数量才能获得长度最小连续子数组,当尾指针达到边界条件即尾指针超过了nums数组长度,那么尾指针不再右移,此时将首指针不断右移,直到首指针长度与nums数组长度相等,结束循环,

1.8K10
领券