修复定时器 setInterval 加速执行

修复定时器 setInterval 加速执行

定时器JS 中有 setTimeout 和 setInterval 两种常见的定时器, setTimeout 只执行一次, setInterval 会在规定的条件内反复执行以实现不同需求。这次聊的算是老生常谈的问题了,很久以前就知道 setInterval 存在这个问题,当时也各种 stackoverflow 不过具体忘记咋处理的了。现在又突然遇到 setInterval 反复执行越来越快这种情况,顺便记录下。

JavaScript 定时器

setInterval模拟一个错误使用 setinterval 场景

代码语言:javascript复制var timer, //预设定时器为全局变量

setup=function(){

timer=setInterval(function(){

console.log('repeat this interval 3000/pms.')

}, 3000)

},

clear=function(){

clearInterval(timer)

};

setup(); //连续执行多次 setup() 触发定时器加速

clear(); //此时再执行 clear() 无效正确使用 setinterval

代码语言:javascript复制var timer, //预设定时器为全局变量

setup=function(){

timer=setInterval(function(){

console.log('repeat this interval 3000/pms.');

//clearInterval(timer) //定时器执行完后内部销毁

}, 3000)

},

clear=function(){

clearInterval(timer)

},

run=function(){

clear(); //如果设定过定时器则先清除

setup(); //再执行定时器设定

};

run() //每次 setup() 前都执行一次 clear()没错就这么简单,我估计之前没搞对的地方主要是变量作用域这块没弄清楚。

小记将定时器名称预设到全局变量,用于执行前清除和执行后清除使用 setInterval 前先清理一遍已设定的 Interval以上,有问题在评论区反馈。

相关灵感

365bet365打不开 新娘出嫁为何要撑伞?谁来撑伞,你知道吗?
365bet365打不开 沈阳与深圳,两座城市的比较与展望
博彩365bet网址导航 如何使用文件传输协议ftp,教你使用文件传输协议命令行
beat365官网下载苹果手机 座机电话移机申请

座机电话移机申请

📅 08-21 👁️ 4268
beat365官网下载苹果手机 《从零开始的RPG游戏制作教程》前言
365bet365打不开 破15亿!今年春节档8部电影,你看了哪些?
博彩365bet网址导航 【路由小知识:路由4系列的状态及指示灯的含义】
365bet365打不开 【奥迪A9】奥迪A9最新报价

【奥迪A9】奥迪A9最新报价

📅 09-09 👁️ 4208
365bet365打不开 當婚姻只剩「老公怎麼還不去死」?背後原因其實很現實