① js中2种定时器的使用及清除的实现
定时器是在JavaScript中用来实现延时执行代码的一种机制,由JavaScript原生提供了一些方法来实现这一功能。定时器分为两类:一次性定时器和周期性定时器。
一次性定时器使用setTimeout方法设置,该方法会在指定的毫秒数后执行一次指定的函数或代码段。使用方式为:var timer=setTimeout(fun,毫秒数)。清除一次性定时器的方法为clearTimeout(timeoutId),其中timeoutId为定时器的唯一标识符,是setTimeout方法执行后返回的值。在实际应用中,setTimeout可以接受一个函数作为参数,也可以接受一段代码字符串,但后者不推荐使用,因为它会类似地使用eval()方法。
周期性定时器使用setInterval方法设置,每隔指定的毫秒数就会执行一次指定的函数或代码段。使用方式为:var timer=setInterval(fun,毫秒数)。清除周期性定时器的方法为clearInterval(timer),其中timer为定时器的唯一标识符,同样是setInterval方法执行后返回的值。
需要注意的是,无论是setTimeout还是setInterval,在调用时都会返回一个整形的数字,这个数字代表定时器的序号,即它是第多少个定时器。因此,要清除定时器,就需要在使用定时器的时候,定义一个变量来记录定时器的返回值。这样,在需要清除定时器时,就可以通过这个变量来调用对应的清除方法。
例如://setTimeout 1000ms后执行1次var test1 = setTimeout(function(){ //your codes},1000); //setInterval 每隔1000ms执行一次var test2 = setInterval(function(){ //your codes},1000)
清除定时器时:clearTimeout(test1); //清除Timeout的定时器 clearInterval(test2); //清除Interval的定时器
有时,在编写代码时,还习惯将清除定时器的变量置为空,这样做的好处是既可以释放内存,也可以便于后续代码的判断。
② 怎么用js 中的定时器实现这种效果
定时器循环,逐个处理。事先弄个div,在需要的时候显示出来,设置它显示的位置。你要动手写,不要光问,写写就自然会明朗起来。