setInterval 让它刚进页面时执行一次,然后根据设置的间隔时间执行;clearInterval清除setInterval。
- 可以在页面加载后先立即执行一次任务,然后再设置定时器。例如,假设你想要每隔一分钟就执行一次某个函数
myFunc
,可以这样实现:
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
函数会忽略该调用并不会产生任何影响。