首页 > 其他分享 >浏览器中跑定时器跑着跑着就慢了(离开当前页面,再次进来后时间会慢一点)

浏览器中跑定时器跑着跑着就慢了(离开当前页面,再次进来后时间会慢一点)

时间:2023-06-05 09:47:59浏览次数:42  
标签:定时器 浏览器 变慢 会慢 离开 中跑 时间 页面

最近再写一个考试系统,到点交卷,在手机上跑定时器是没问题的,在浏览器上跑的时候,一离开页面(指切换标签页),再次回来时间就会慢很多

关于浏览器变慢的原因是,当离开当前页面时,cpu检测到你不在当前页面,为了节省资源,会放慢浏览器的时间。导致进入页面,时间变慢。

有没有解决办法呢,当然是有的,如果我们可以监听进出页面,那么我们进入页面的时候,重启定时器,即修正时间,那么就不会有问题了

 document.addEventListener("visibilitychange", function() {
            if (document.hidden === true) {
                // 页面被挂起
                console.log('离开');
                clearInterval(that.timerll);
            } else {
                clearInterval(that.timerll);
                that.time()   
                console.log('进入');
            }
        });

使用以上代码,即可解决浏览器中定时器变慢的问题

标签:定时器,浏览器,变慢,会慢,离开,中跑,时间,页面
From: https://www.cnblogs.com/bingchenzhilu/p/17457031.html

相关文章

  • golang的打点定时器
    定时器方式1:使用time.NewTicker(时间间隔)来设置定时器//定时器,定义一个1秒间隔的定时器ticker:=time.NewTicker(time.Second)n:=0fori:=rangeticker.C{fmt.Println(i)n++ifn>5{//终止定时器ticker.Stop()return......
  • 定时器(JavaScript)的使用
    前言通过定时器自动的做一些事情,例如发送网络请求一、定时器定时器:定时器可以设定时间自动的做某件事情。定时器是一种方法,不是对象,定时器属于window对象。二、定时器具体内容周期性定时器:间隔一定的时间,自动的做某件事情setInterval(函数名,间隔时间)一次性定时器:延迟多长时间做......
  • Linux下C++实现一个定时器
    要在Linux下实现一个定时器,可以使用以下两种方法:使用系统提供的定时器APILinux系统提供了一些定时器API,如setitimer、timer_create、timer_gettime等,可以使用这些API来实现定时器。以setitimer为例,可以按照以下步骤来使用:1.定义一个itimerval结构体变量,该结构体包含定时器的初......
  • jmeter--定时器组件
    工作中,用jmeter写接口测试脚本、性能测试脚本时,通常也会用到定时器组件,一般用的比较多的还是固定定时器、同步定时器。对于其他的定时器了解的不是特别深,为了更系统更深入的学习jmeter工具和工具中的定时器组件,自己对一些经常使用的定时器组件进行了学习、探索,并记录了一些知识点......
  • vba 定时器
    vba代码中,可以设置定时器。方法是application.ontime,具体函数如下:expression.OnTime(EarliestTime,Procedure,LatestTime,Schedule)这个函数是用来安排一个过程在将来的特定时间运行,(可为某个日期的指定时间,也可为指定的时间段之后)。通过这个函数我们就可以在Excel里编写......
  • jmeter性能测试-定时器
    1.固定定时器:ConstantTimer官方介绍功能:通过该定时器,可以对每一个线程延迟固定的时间。个人实践:如果想通过该定时器来控制吞吐量来达到想要的TPS不是很可靠。2.同步定时器:SynchronizingTimer官方介绍功能:通过该定时器,可以在某一逻辑点模拟创建大负载量进行测试。原理:......
  • TypeScript中的定时器
    在ts中使用setInterval()和setTimeout()时,如果把特们的返回值定义成number类型,那么ts会警告你不能将类型“Timeout”分配给类型“number”或你不能将类型“Timer”分配给类型“number”原因setInterval()和setTimeout()使用的是Node.js下的接口定义,而在ts中,window下......
  • 【React】定时器组件
    鼠标移入关闭定时器并清除,鼠标移出组件的时候打开定时器进行循环consttimer=useRef(null);useEffect(()=>{startLoop();},[]);conststartLoop=()=>{stopLoop();timer.current=window.setInterval(()=>{//要干的事},60*......
  • 【Java】定时器CronExpression参数规则
    参考:定时器CronExpression配置说明详解-心和梦的方向-博客园(cnblogs.com) 项目中经常要使用到定时器,其中CronExpression配置非常重要。现在就配置说明详细解说一下:CronExpression表达式是由6个必需字段(秒、分、时、日、月、周)和一个可选字段(年)通过空格组成。cronExpres......
  • 定时器概述
    定时器详解引出定时器是一个比较常见的数据结构,或者说框架,以一个最简单的例子引出,在游戏中,冷却时间使用的就是定时器;所以说定时器是等待时间过期执行对应时间事件处理(回调函数)的一个框架;补充:下文中可能会出现定时任务,它和时间事件基本上是一个东西那么现在有一个就有一......