js中怎么让同一个定时器在不同地方多次调用

JavaScript021

js中怎么让同一个定时器在不同地方多次调用,第1张

用定时器setInterval;

例如:

<script>

function a(){

alert(1)

}

var test = setInterval(a, 1000)

</script>

这样就是每隔1S执行一次函数a

注意:在js中如果定时器不用的时候一定要清除掉,不然会消耗内存,清除可以用

window.clearInterval(intervalID)清除,intervalID是定时器的变量,比如上面的例子中

intervalID就是test

JavaScript中可以实现定时器功能的有两个函数——setTimeout和setInterval,二者的不同是setTimeout只执行一次,而setInterval是以指定的时间间隔重复执行。setTimeout可以使用clearTimeout取消,setInterval可以使用clearInterval取消。

有时,我们会用setTimeout(callback,0)将任务推迟一段很短的时间,但是其实通过process.nextTick(callback)来实现会更好,因为Node中的事件循环在一个处理事件队列的循环里运行,每循环一次称为一个“tick”。使用process.nextTick(callback)回调函数会在事件队列内所有事件处理完毕后,会在下次事件循环之前被调用,即进入下个event loop前执行;而setTimeout(callback,0)把回调延迟到后面的某个event loop执行,具体由设置的延时时间和event loop的执行时间决定。

这样可以保证my_async_function函数是顺序执行。

可以定义一个变量,赋值为要执行的次数,然后每次执行定时器时这个变量自减一,直到为0,清除定时器。

var repeat = 5  // 限制执行次数为5次

var timer = setInterval(function() {    

    if (repeat == 0) {

        clearInterval(timer)

    } else {

        repeat--

        // 其他代码...

    }

}, 1000)