当前位置:首页 > JavaScript

js实现定时提醒

2026-02-02 14:51:09JavaScript

使用 setTimeout 实现单次提醒

通过 setTimeout 延迟执行回调函数,适用于单次定时提醒场景。

js实现定时提醒

function setReminder(message, delay) {
  setTimeout(() => {
    alert(message); // 或 console.log(message) 控制台输出
  }, delay * 1000); // 延迟时间(秒转毫秒)
}
// 示例:5秒后弹出提示
setReminder("该休息了!", 5);

使用 setInterval 实现周期性提醒

通过 setInterval 周期性执行任务,适合重复提醒场景。

js实现定时提醒

function setPeriodicReminder(message, interval) {
  setInterval(() => {
    alert(message); 
  }, interval * 1000); // 间隔时间(秒转毫秒)
}
// 示例:每30分钟提醒一次
setPeriodicReminder("喝水时间到!", 1800);

结合 Notification API 实现桌面通知

浏览器通知更显眼,需用户授权后使用。

function showNotification(title, options) {
  if (Notification.permission === "granted") {
    new Notification(title, options);
  } else if (Notification.permission !== "denied") {
    Notification.requestPermission().then(permission => {
      if (permission === "granted") {
        new Notification(title, options);
      }
    });
  }
}
// 示例:10秒后发送通知
setTimeout(() => {
  showNotification("提醒", { body: "会议即将开始!" });
}, 10000);

使用 localStorage 存储提醒状态

避免页面刷新后定时器失效,记录提醒状态。

function setPersistentReminder(key, message, delay) {
  const lastReminded = localStorage.getItem(key);
  if (!lastReminded || Date.now() - lastReminded > delay * 1000) {
    alert(message);
    localStorage.setItem(key, Date.now());
  }
}
// 示例:每天只提醒一次
setPersistentReminder("dailyReminder", "记得写日报!", 86400);

注意事项

  • 定时器精度受浏览器标签页休眠影响,长时间未激活可能延迟。
  • 清除定时器使用 clearTimeoutclearInterval,避免内存泄漏。
  • 移动端需注意唤醒锁机制,防止屏幕关闭后定时器停止。

完整示例代码

// 综合定时提醒功能
class Reminder {
  constructor() {
    this.timers = {};
  }

  add(name, callback, delay, repeat = false) {
    if (repeat) {
      this.timers[name] = setInterval(callback, delay * 1000);
    } else {
      this.timers[name] = setTimeout(() => {
        callback();
        delete this.timers[name];
      }, delay * 1000);
    }
  }

  cancel(name) {
    const timer = this.timers[name];
    if (timer) {
      clearInterval(timer);
      clearTimeout(timer);
      delete this.timers[name];
    }
  }
}

// 使用示例
const reminder = new Reminder();
reminder.add("break", () => alert("站起来活动一下!"), 3600, true);

标签: js
分享给朋友:

相关文章

js实现打印

js实现打印

使用window.print()方法实现打印 在JavaScript中,可以通过调用window.print()方法直接触发浏览器的打印功能。这会打开系统的打印对话框,用户可以选择打印机和设置打印选项…

js实现选项卡

js实现选项卡

实现选项卡的基本思路 选项卡通常由一组标签和对应的内容面板组成。点击标签时,显示对应的内容面板,隐藏其他面板。实现这一效果需要结合HTML结构、CSS样式和JavaScript交互逻辑。 HTML结…

js实现延迟

js实现延迟

实现延迟的方法 在JavaScript中,实现延迟操作有多种方式,以下是几种常见的方法: 使用setTimeout函数 setTimeout是JavaScript中最常用的延迟执行方法。它接受一个回…

js实现变形

js实现变形

使用 CSS 和 JavaScript 实现元素变形 在 JavaScript 中实现变形效果通常结合 CSS 的 transform 属性,通过动态修改该属性实现元素的旋转、缩放、倾斜或平移。 基…

js实现交换

js实现交换

交换变量的方法 在JavaScript中,交换两个变量的值有多种方法。以下是常见的几种实现方式: 使用临时变量 通过引入一个临时变量来存储其中一个变量的值,实现交换: let a = 1; le…

js实现上传文件

js实现上传文件

文件上传的基本实现 使用HTML的<input type="file">元素配合JavaScript的File API可以实现文件上传功能。 <input type="file"…