setTimeout定时,但是退出页面还执行,如何解决

setTimeout定时,但是退出页面还执行,如何解决
定时器的使用需记得清清除
使用对象变量赋值执行

在处理 setTimeout 定时器时,如果用户在定时器触发之前离开页面,你可以使用 clearTimeout 方法来清除定时器,以确保定时器不会在页面关闭后继续执行。以下是一个示例,展示如何使用 clearTimeout 解决这个问题:

let timerId;

function startTimer() {
  timerId = setTimeout(() => {
    // 执行定时器逻辑
    console.log("定时器触发");
  }, 5000);
}

function stopTimer() {
  clearTimeout(timerId);
}

在上述示例中,我们首先声明了一个 timerId 变量来存储 setTimeout 返回的定时器 ID。

startTimer 函数用于启动定时器,当用户触发某个事件或条件满足时调用该函数。在这个例子中,我们将定时器设置为 5 秒钟,即 5000 毫秒。你可以根据需要调整定时器的延迟时间和执行逻辑。

stopTimer 函数用于停止定时器,在用户离开页面或不再需要定时器时调用该函数。它使用 clearTimeout 方法传入之前保存的 timerId,以清除定时器。

通过使用 clearTimeout 方法,你可以在用户离开页面时停止定时器的执行,避免定时器继续在后台执行。确保在适当的时机调用 stopTimer 函数,例如在页面卸载事件或其他适合的地方调用。

posted @ 2024-02-04 14:56  yoona-lin  阅读(421)  评论(0编辑  收藏  举报