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

相关文章

Linux内核参数配置与验证详细指南

《Linux内核参数配置与验证详细指南》在Linux系统运维和性能优化中,内核参数(sysctl)的配置至关重要,本文主要来聊聊如何配置与验证这些Linux内核参数,希望对大家有一定的帮助... 目录1. 引言2. 内核参数的作用3. 如何设置内核参数3.1 临时设置(重启失效)3.2 永久设置(重启仍生效

Pytest多环境切换的常见方法介绍

《Pytest多环境切换的常见方法介绍》Pytest作为自动化测试的主力框架,如何实现本地、测试、预发、生产环境的灵活切换,本文总结了通过pytest框架实现自由环境切换的几种方法,大家可以根据需要进... 目录1.pytest-base-url2.hooks函数3.yml和fixture结论你是否也遇到过

Spring Boot项目中结合MyBatis实现MySQL的自动主从切换功能

《SpringBoot项目中结合MyBatis实现MySQL的自动主从切换功能》:本文主要介绍SpringBoot项目中结合MyBatis实现MySQL的自动主从切换功能,本文分步骤给大家介绍的... 目录原理解析1. mysql主从复制(Master-Slave Replication)2. 读写分离3.

CSS去除a标签的下划线的几种方法

《CSS去除a标签的下划线的几种方法》本文给大家分享在CSS中,去除a标签(超链接)的下划线的几种方法,本文给大家介绍的非常详细,感兴趣的朋友一起看看吧... 在 css 中,去除a标签(超链接)的下划线主要有以下几种方法:使用text-decoration属性通用选择器设置:使用a标签选择器,将tex

MyBatis 动态 SQL 优化之标签的实战与技巧(常见用法)

《MyBatis动态SQL优化之标签的实战与技巧(常见用法)》本文通过详细的示例和实际应用场景,介绍了如何有效利用这些标签来优化MyBatis配置,提升开发效率,确保SQL的高效执行和安全性,感... 目录动态SQL详解一、动态SQL的核心概念1.1 什么是动态SQL?1.2 动态SQL的优点1.3 动态S

Python基于wxPython和FFmpeg开发一个视频标签工具

《Python基于wxPython和FFmpeg开发一个视频标签工具》在当今数字媒体时代,视频内容的管理和标记变得越来越重要,无论是研究人员需要对实验视频进行时间点标记,还是个人用户希望对家庭视频进行... 目录引言1. 应用概述2. 技术栈分析2.1 核心库和模块2.2 wxpython作为GUI选择的优

新特性抢先看! Ubuntu 25.04 Beta 发布:Linux 6.14 内核

《新特性抢先看!Ubuntu25.04Beta发布:Linux6.14内核》Canonical公司近日发布了Ubuntu25.04Beta版,这一版本被赋予了一个活泼的代号——“Plu... Canonical 昨日(3 月 27 日)放出了 Beta 版 Ubuntu 25.04 系统镜像,代号“Pluc

浅谈mysql的sql_mode可能会限制你的查询

《浅谈mysql的sql_mode可能会限制你的查询》本文主要介绍了浅谈mysql的sql_mode可能会限制你的查询,这个问题主要说明的是,我们写的sql查询语句违背了聚合函数groupby的规则... 目录场景:问题描述原因分析:解决方案:第一种:修改后,只有当前生效,若是mysql服务重启,就会失效;

使用DrissionPage控制360浏览器的完美解决方案

《使用DrissionPage控制360浏览器的完美解决方案》在网页自动化领域,经常遇到需要保持登录状态、保留Cookie等场景,今天要分享的方案可以完美解决这个问题:使用DrissionPage直接... 目录完整代码引言为什么要使用已有用户数据?核心代码实现1. 导入必要模块2. 关键配置(重点!)3.

JDK多版本共存并自由切换的操作指南(本文为JDK8和JDK17)

《JDK多版本共存并自由切换的操作指南(本文为JDK8和JDK17)》本文介绍了如何在Windows系统上配置多版本JDK(以JDK8和JDK17为例),并通过图文结合的方式给大家讲解了详细步骤,具有... 目录第一步 下载安装JDK第二步 配置环境变量第三步 切换JDK版本并验证可能遇到的问题前提:公司常