java script 定时任务清除

一定要注意,这两个的输入参数是设置timeout 和interval时候的返回值。

HTML DOM clearInterval()方法
clearInterval() 方法的参数必须是由 setInterval() 返回的 ID 值。

语法
clearInterval(id_of_setinterval)
参数 描述
id_of_setinterval 由 setInterval() 返回的 ID 值。


HTML DOM clearTimeout() 方法
定义和用法clearTimeout() 方法可取消由 setTimeout() 方法设置的 timeout。语法clearTimeout(id_of_settimeout)

id_of_settimeout由 setTimeout() 返回的 ID 值。该值标识要取消的延迟执行代码块。


code example;

function fn(){}

var a=setTimeout(fn,10);//设置定时返回句柄

var b=setInterval(fn,10);//设置定时返回句柄

clearTimeout(a);//清除时输入句柄

clearInterval(b);//清除时输入句柄


原理:

setTimeout 和setInterval字面上应该是可以知道其大意的。timeout:延时;interval:间隔;

setTimeout可以实现循环执行,方法也很简单,就是用一个递归就可以了。

他们两个都是向js内部设置一个定时对象。所以清除的时候要指定对象清除。


清除全部定时器的方式:

1.定义全局变量,通过js遍历清除

这种方法在项目中所使用到的定时器必须赋值记录到定义好的全局变量中,实现模拟代码如下:

var pageTimer = {} ; //定义计算器全局变量
//赋值模拟
pageTimer["timer1"] = setInterval(function(){},2000);
pageTimer["timer2"] = setInterval(function(){},2000);
//全部清除方法
for(var each in pageTimer){
    clearInterval(pageTimer[each]);
}

2.暴力清除方式

设置一个比较大的数值,循环清除,模拟代码如下:

for(var i = 1; i < 1000; i++) {
clearInterval(i);
}

分析:实际上暴力清除的方式是不可取的,在不得已情况下才使用,在IE下,定时器返回值在IE下面是8位数字如:248147094,并且起始值不能确定,而Chrome和firefox下是从1开始的个位数字,一般项目还是建议第一种,并且第一种的扩展性也好,比如可以做个方法,清除除了指定定时器之外的所有定时器。



参考文献地址:http://www.xuephp.com/main/detail.php?type=php&cid=33769


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值