setInterval 让它刚进页面时执行一次,然后根据设置的间隔时间执行;clearInterval清除setInterval。
function myFunc() {// 要执行的代码
}// 立即执行一次任务
myFunc();// 每隔一分钟执行一次任务
setInterval(myFunc, 60 * 1000);
在这个例子中,首先定义了一个名为 myFunc
的函数,然后立即执行了一次 myFunc
。接着使用 setInterval
函数设置了一个定时器,使得 myFunc
函数每隔一分钟被执行一次。
- 需要注意的是,如果执行的任务比较耗时,那么在任务执行期间,定时器仍然会继续计时,因此可能会导致任务的并发执行。如果需要避免这种情况,可以在任务执行前先检查定时器是否已经在执行中,例如:
var isRunning = false;function myFunc() {if (isRunning) {return; // 如果任务正在执行,则直接返回}isRunning = true;// 要执行的代码isRunning = false;
}// 立即执行一次任务
myFunc();// 每隔一分钟执行一次任务
setInterval(myFunc, 60 * 1000);
在这个例子中,定义了一个名为 isRunning
的变量,用来表示任务是否正在执行。在执行 myFunc
函数时,如果任务正在执行,则直接返回;否则将 isRunning
设置为 true
,执行任务,最后再将 isRunning
设置为 false
。这样可以确保同一时刻只有一个任务在执行。
- 要清除使用
setInterval
创建的计时器,可以使用clearInterval
函数。该函数需要接收一个参数,即要清除的计时器 ID,该 ID 是由setInterval
函数返回的。
例如,如果要清除 ID 为 timerId
的计时器,可以使用以下代码:
clearInterval(timerId);
在清除计时器之前,需要先将该计时器的 ID 存储起来,以便在需要时能够准确地清除它。通常情况下,计时器 ID 可以存储在一个变量中,例如:
var timerId = setInterval(function() {// 要执行的代码
}, 1000);
然后可以在需要清除计时器时,调用 clearInterval
函数:
clearInterval(timerId);
注意,必须要传入 setInterval
返回的 ID,否则无法清除计时器。如果传入一个不是计时器 ID 的参数,clearInterval
函数会忽略该调用并不会产生任何影响。