JavaScript通过setTimeout和setInterval结合Notification API实现定时提醒,需先请求用户授权通知权限,再设置定时触发系统通知,如每小时提醒久坐休息,实际应用中需处理权限、兼容性及页面休眠影响,并可借助localStorage保存设置以提升体验。

JavaScript 中实现定时提醒功能,主要依赖浏览器提供的定时器 API:setTimeout 和 setInterval。结合系统通知(Notification API),可以制作出实用的定时提醒脚本。下面详细介绍实现方法。
1. 基础定时器:setTimeout 与 setInterval
JavaScript 提供两种核心定时器函数:
- setTimeout:延迟执行一次代码
- setInterval:每隔固定时间重复执行代码
例如,5秒后提醒一次:
setTimeout(() => {
console.log("该喝水了!");
}, 5000); // 5000毫秒 = 5秒
每10分钟提醒一次:
setInterval(() => {
console.log("记得休息一下!");
}, 600000); // 10分钟 = 600000毫秒
2. 浏览器通知提醒:使用 Notification API
要在页面外弹出系统级提醒,需使用 Notification API。首先检查用户是否授权通知权限:
if (Notification.permission === "granted") {
new Notification("提醒:该保存工作了!");
} else if (Notification.permission !== "denied") {
Notification.requestPermission().then(permission => {
if (permission === "granted") {
new Notification("提醒已开启");
}
});
}
将通知与定时器结合,即可实现自动提醒:
setTimeout(() => {
if (Notification.permission === "granted") {
new Notification("任务完成提醒", {
body: "别忘了提交报告!",
icon: "icon.png"
});
}
}, 30000); // 30秒后提醒
3. 实用提醒脚本示例
以下是一个完整的定时提醒脚本,每小时提醒一次:
// 请求通知权限
Notification.requestPermission();
function startHourlyReminder() {
setInterval(() => {
if (Notification.permission === "granted") {
new Notification("久坐提醒", {
body: "已经一小时了,起来活动一下吧!",
icon: "/images/reminder-icon.png"
});
}
}, 3600000); // 每小时执行一次
}
startHourlyReminder();
4. 注意事项与优化建议
实际使用中需注意几点:
- 通知权限需要用户主动允许,首次运行会弹出请求框
- 移动端或隐身模式下,通知可能受限
- 长时间运行的 setInterval 可能受页面休眠影响,精度下降
- 可结合 localStorage 存储用户设置,如提醒间隔、开关状态等
若需更高精度或后台运行,可考虑使用 Service Worker 配合后台定时任务。
基本上就这些。通过组合定时器和通知 API,就能轻松实现网页端的定时提醒功能。不复杂但容易忽略权限处理和用户体验细节。










