草庐IT

SetInterval

全部标签

大家都能看得懂的源码-如何让定时器在页面最小化的时候不执行?

本文是深入浅出ahooks源码系列文章的第七篇,该系列已整理成文档-地址。觉得还不错,给个star支持一下哈,Thanks。今天我们来聊聊定时器。useInterval和useTimeout看名称,我们就能大概知道,它们的功能对应的是setInterval和setTimeout,那对比后者有什么优势?先看useInterval,代码简单,如下所示:functionuseInterval(fn:()=>void,delay:number|undefined,options?:{immediate?:boolean;},){constimmediate=options?.immediate;con

大家都能看得懂的源码-如何让定时器在页面最小化的时候不执行?

本文是深入浅出ahooks源码系列文章的第七篇,该系列已整理成文档-地址。觉得还不错,给个star支持一下哈,Thanks。今天我们来聊聊定时器。useInterval和useTimeout看名称,我们就能大概知道,它们的功能对应的是setInterval和setTimeout,那对比后者有什么优势?先看useInterval,代码简单,如下所示:functionuseInterval(fn:()=>void,delay:number|undefined,options?:{immediate?:boolean;},){constimmediate=options?.immediate;con

setTimeout、setInterval、requestAnimationFrame

在异步编程中当然少不了定时器了,常见的定时器函数有setTimeout、setInterval、requestAnimationFrame。setTimeout刚开始用setTimeout时,通过会认为设置延时多久,就应该是多久后执行。其实这个观点是错误的,因为JS是单线程执行的,如果前面的代码影响了性能,就会导致setTimeout不会按期执行。这就要求我们不断去修正,使定时器相对准确。letperiod=60*1000*60*2;letstartTime=newDate().getTime();letcount=0;letend=newDate().getTime()+period;let

setTimeout、setInterval、requestAnimationFrame

在异步编程中当然少不了定时器了,常见的定时器函数有setTimeout、setInterval、requestAnimationFrame。setTimeout刚开始用setTimeout时,通过会认为设置延时多久,就应该是多久后执行。其实这个观点是错误的,因为JS是单线程执行的,如果前面的代码影响了性能,就会导致setTimeout不会按期执行。这就要求我们不断去修正,使定时器相对准确。letperiod=60*1000*60*2;letstartTime=newDate().getTime();letcount=0;letend=newDate().getTime()+period;let