setTimeout,setInterval 谷歌内核浏览器切换标签(非激活状态)时,限制速度

本文主要是介绍setTimeout,setInterval 谷歌内核浏览器切换标签(非激活状态)时,限制速度,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

    最近做开发,开发一个客服呼叫系统. 遇见一个很小的需求。客服端有一个电话监听事件,如果有电话打进来,把浏览器title滚动播放。

    刚听完这个需求,对于一个老程序来说这也太简单了。随便百度个类似插件,集成上去不就ok了吗。

    然后就找到了个叫Title.js的轮播插件。可以轮播,可以修改,可以加前后缀。代码如下:

    源码地址:https://github.com/arkaindas/titlejs

      然后,对插件代码做了少许处理,来方便关闭轮播效果。

image.png

   然后直接引入,调用。ok,完工了吧?

Title.animation("typeWriter");

   NO!!!!!F**K!!!!!!!!!

万万没想到,在chrome上,如果页面标签非活动状态,那么运行非常缓慢,不管怎么改定时器的时间间隔。这样的话,就达不到清晰提示的目的,简直就是鸡肋。

   So。。。what is the matter?

   查百度,竟然几乎没有人问这个问题。然后就可是一通乱翻,不经意间,发现一个插件.简介只有一句话:Avoid timers throttling by browser when tab is inactive。

    一句话就够了,要的就是这个。引入到项目试了下,完全符合预期。

 

    查资料,貌似是谷歌chrome为了性能,自动判断当前页签是否是活动状态,如果不是的话,settimeout最快也是每秒执行一次,不管参数是多小。而在IE浏览器是不会出现这个情况的(懒得测试FF)。

    

    本来觉得一个很简单的需求,结果坑了自己将近2个小时。一入IT深似海。。。

转载自:http://www.phpnote.net/index.php/Home/Article/index/id/196

这篇关于setTimeout,setInterval 谷歌内核浏览器切换标签(非激活状态)时,限制速度的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/185430

相关文章

基于Python实现数字限制在指定范围内的五种方式

《基于Python实现数字限制在指定范围内的五种方式》在编程中,数字范围限制是常见需求,无论是游戏开发中的角色属性值、金融计算中的利率调整,还是传感器数据处理中的异常值过滤,都需要将数字控制在合理范围... 目录引言一、基础条件判断法二、数学运算巧解法三、装饰器模式法四、自定义类封装法五、NumPy数组处理

java实现多数据源切换方式

《java实现多数据源切换方式》本文介绍实现多数据源切换的四步方法:导入依赖、配置文件、启动类注解、使用@DS标记mapper和服务层,通过注解实现数据源动态切换,适用于实际开发中的多数据源场景... 目录一、导入依赖二、配置文件三、在启动类上配置四、在需要切换数据源的类上、方法上使用@DS注解结论一、导入

Linux升级或者切换python版本实现方式

《Linux升级或者切换python版本实现方式》本文介绍在Ubuntu/Debian系统升级Python至3.11或更高版本的方法,通过查看版本列表并选择新版本进行全局修改,需注意自动与手动模式的选... 目录升级系统python版本 (适用于全局修改)对于Ubuntu/Debian系统安装后,验证Pyt

SpringBoot利用树形结构优化查询速度

《SpringBoot利用树形结构优化查询速度》这篇文章主要为大家详细介绍了SpringBoot利用树形结构优化查询速度,文中的示例代码讲解详细,感兴趣的小伙伴可以跟随小编一起学习一下... 目录一个真实的性能灾难传统方案为什么这么慢N+1查询灾难性能测试数据对比核心解决方案:一次查询 + O(n)算法解决

python运用requests模拟浏览器发送请求过程

《python运用requests模拟浏览器发送请求过程》模拟浏览器请求可选用requests处理静态内容,selenium应对动态页面,playwright支持高级自动化,设置代理和超时参数,根据需... 目录使用requests库模拟浏览器请求使用selenium自动化浏览器操作使用playwright

Python获取浏览器Cookies的四种方式小结

《Python获取浏览器Cookies的四种方式小结》在进行Web应用程序测试和开发时,获取浏览器Cookies是一项重要任务,本文我们介绍四种用Python获取浏览器Cookies的方式,具有一定的... 目录什么是 Cookie?1.使用Selenium库获取浏览器Cookies2.使用浏览器开发者工具

go动态限制并发数量的实现示例

《go动态限制并发数量的实现示例》本文主要介绍了Go并发控制方法,通过带缓冲通道和第三方库实现并发数量限制,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面... 目录带有缓冲大小的通道使用第三方库其他控制并发的方法因为go从语言层面支持并发,所以面试百分百会问到

IDEA中新建/切换Git分支的实现步骤

《IDEA中新建/切换Git分支的实现步骤》本文主要介绍了IDEA中新建/切换Git分支的实现步骤,通过菜单创建新分支并选择是否切换,创建后在Git详情或右键Checkout中切换分支,感兴趣的可以了... 前提:项目已被Git托管1、点击上方栏Git->NewBrancjsh...2、输入新的分支的

浏览器插件cursor实现自动注册、续杯的详细过程

《浏览器插件cursor实现自动注册、续杯的详细过程》Cursor简易注册助手脚本通过自动化邮箱填写和验证码获取流程,大大简化了Cursor的注册过程,它不仅提高了注册效率,还通过友好的用户界面和详细... 目录前言功能概述使用方法安装脚本使用流程邮箱输入页面验证码页面实战演示技术实现核心功能实现1. 随机

全面解析MySQL索引长度限制问题与解决方案

《全面解析MySQL索引长度限制问题与解决方案》MySQL对索引长度设限是为了保持高效的数据检索性能,这个限制不是MySQL的缺陷,而是数据库设计中的权衡结果,下面我们就来看看如何解决这一问题吧... 目录引言:为什么会有索引键长度问题?一、问题根源深度解析mysql索引长度限制原理实际场景示例二、五大解决