当前位置:首页 > 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实现分页

分页的基本实现思路 在JavaScript中实现分页功能通常需要结合前端和后端逻辑。前端负责渲染分页控件和处理用户交互,后端负责提供分页数据。 前端分页实现 纯前端分页适用于数据量较小的情况,可以…

js实现图片上传

js实现图片上传

图片上传的基本实现 使用HTML的<input type="file">元素配合JavaScript的File API可以实现图片上传功能。HTML部分需要创建一个文件选择输入框和一个用于…

js实现拷贝

js实现拷贝

实现文本拷贝 使用 document.execCommand 方法(已废弃但兼容性较好): function copyText(text) { const textarea = documen…

js实现图表

js实现图表

在JavaScript中实现图表通常使用流行的图表库,以下是几种常见的方法和工具: 使用Chart.js Chart.js是一个简单灵活的库,适合快速生成响应式图表。安装方式包括CDN引入或npm…

js实现瀑布流

js实现瀑布流

实现瀑布流布局 瀑布流布局是一种常见的网页布局方式,常用于图片展示、商品列表等场景。以下是使用 JavaScript 实现瀑布流布局的几种方法。 纯 JavaScript 实现 通过计算元素的位置和…

js jquery

js jquery

jQuery 简介 jQuery 是一个快速、简洁的 JavaScript 库,简化了 HTML 文档遍历、事件处理、动画设计和 Ajax 交互。它兼容多种浏览器,提供易于使用的 API,使开发者能够…