在做项目中难免会碰到需要实时刷新,动画依次出现等等需求,这时候就需要定时器登上我们的代码舞台了,所以今天我们就先来了解一下JS定时器的设置和清除吧。
window对象提供了两个方法来实现定时器的效果,分别是window.setTimeout()和window.setInterval。其中前者可以使一段代码在指定时间后运行;而后者则可以使一段代码每过指定时间就运行一次。它们的原型如下: window.setTimeout(code,millisec); window.setInterval(code,millisec); 其中,code可以是用引号括起来的一段代码,也可以是一个函数名,到了指定的时间,系统便会自动调用该函数,当使用函数名作为调用句柄时,不能带有任何参数;而使用字符串时,则可以在其中写入要传递的参数。两个方法中的第二个参数是millisec,表示延时或者重复执行的毫秒数。
具体写法如下:
setTimeout (test,1000); //1秒后执行
setTimeout ('test()',1000); //1秒后执行
setTimeout (function(){},1000); //1秒后执行 注:setInterval的用法与setTimeout一样
setTimeout ('test(参数)',1000); //1秒后执行 注:如果不小心写成了setTimeout (test(参数),1000);test方法就会立即执行哦。
DEMO代码:
执行结果:
二、清除定时器 由于定时器在调用时,都会返回一个整形的数字,该数字代表定时器的序号,即第多少个定时器,所以定时器的清除要借助于这个返回的数字。 定时器清除的方法:clearTimeout(obj)和clearInterval(obj)。 要清除定时器,就必须在用定时器的时候,定义一个变量来记录定时器的返回值。如下:
注:有时候在写的时候,还会习惯将清空的定时器的变量置空,这样写既可以释放内存,也可以便于后边代码的判断。 |