setTimeout代替setInterval的写法以及setInterval的弊端以及越来越快的解决办法

Posted it-xiong

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了setTimeout代替setInterval的写法以及setInterval的弊端以及越来越快的解决办法相关的知识,希望对你有一定的参考价值。

平常经常遇到的一个问题,很多人想间隔时间执行一些事件的时候,第一时间就会想到用setInterval,但是setInterval村子啊不少弊端哦。

弊端1:setInterval会无视错误代码,即使代码报错,还是会一直执行下去。

弊端2:setInterval会无视网络延迟,很多人会有需求需要1秒更新一次数据,然后就有可能会定时发送请求给服务器请求,假如服务器请求数据发生延迟等等情况的时候,setInterval不会等到请求数据完之后才去去执行下一次请求,他会在当你发生第一次请求的时候就已经开始计时,并且无论有没有请求完成,只有时间一到下一秒的时候,就会再次发送请求。很容造成请求堵塞,或者渲染堵塞,严重的会之间卡死。

弊端3:很多时候越跑越快的问题。

解决方案:使用setTimeout和递归(自我调用)

例如:

使用 setInterval 方案(不推荐使用)

setInterval(function(){
    console.log(‘做点什么吧‘)
},1000)

使用 setTimeout 方案 (推荐使用,完美代替setInterval)

var demo = function(){
     console.log(‘做点什么吧‘)
     setTimeout(demo, 1000)       
}

以上是关于setTimeout代替setInterval的写法以及setInterval的弊端以及越来越快的解决办法的主要内容,如果未能解决你的问题,请参考以下文章

为啥经常看到用setTimeout嵌套代替setInterva

干货 | RAF替代setTimeout_setInterval

请简述一下settimeout和setinterval的区别,其中包括内存方面的分析前端

setTimeout 与 setInterval

setTimeout()和setInterval()的用法

setTimeout 与 setInterval