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