码迷,mamicode.com
首页 > 其他好文 > 详细

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

时间:2018-11-30 16:35:05      阅读:657      评论:0      收藏:0      [点我收藏+]

标签:自我   span   次数   请求   完成   报错   之间   等等   服务   

平常经常遇到的一个问题,很多人想间隔时间执行一些事件的时候,第一时间就会想到用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的弊端以及越来越快的解决办法

标签:自我   span   次数   请求   完成   报错   之间   等等   服务   

原文地址:https://www.cnblogs.com/it-xiong/p/10044786.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!