setInterval ( ) & clearInterval ( )踩过的坑

原文出处:https://blog.csdn.net/YDesire/article/details/81124331

setInterval(): 间隔指定的毫秒数不停地执行指定的代码,定时器

clearInterval(): 用于停止 setInterval() 方法执行的函数代码

使用方法:
setInterval(code,millisec),两个参数都是必须的,第一个参数为要调用的函数或要执行的代码串。第二个参数为周期性执行或调用 code 之间的时间间隔,以毫秒计。

clearInterval(id_of_setinterval),参数是必须的,为setInterval返回的ID值

示例:

<body>
    <button οnclick="start()">按钮一</button>
    <button οnclick="stop()">按钮二</button>
    
    <script type="text/javascript">
	var interval = null;//计时器
	var i = 0;
	function start(){//启动计时器函数
        	if(interval!=null){//判断计时器是否为空
        		clearInterval(interval);
			interval=null;
		}
 
		interval = setInterval(overs,1000);//启动计时器,调用overs函数,
	}
			
	function overs(){
		i++;
		console.log(i);	
	}
 
        function stop(){	
        	clearInterval(interval);
		interval = null;
	}
    </script>
</body>

在使用setInterval方法时,每一次启动都需要对setInterval方法返回的值做一个判断,判断是否是空值,若不是空值,则要停止定时器并将值设为空,再重新启动,如果不进行判断并赋值,有可能会造成计时器循环调用,在同等的时间内同时执行调用的代码,并会随着代码的运行时间增加而增加,导致功能无法实现,甚至占用过多资源而卡死奔溃。因此在每一次使用setInterval方法时,都需要进行一次判断。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值