我正在编写一个需要发送通知的网络应用。它每30秒检查12个不同的东西,如果其中一个符合标准,它应该发送通知;然后它不应该发送另一个通知,直到下一个30分钟(小时和半小时)间隔。如何检查是否已发送通知而不是再次发送通知?我认为这是通过标签完成的,但仍然会弹出两个带有相同标签的通知,第二个只会替换第一个。
用于生成通知的函数是
INSERT INTO a(b) VALUES ('a');
从另一个每隔30秒通过Ajax加载的脚本调用该函数。该脚本检查数据库以查看12个事物中的一个是否处于需要通知的状态,然后调用该函数并传递该名称和30分钟间隔的唯一标记。
此外,我注意到此代码基于Mozilla on Notifications API的开发人员文档,不会将通知添加到OS X通知中心。
答案 0 :(得分:2)
您是否考虑过使用localStorage中的标志来存储上次发送通知的时间?
假设您存储发送第一个通知的时间,然后再次检查,如果它已经足够大,则发送另一个并更新该标志。
即使刷新网页,localStorage数据也会保留。
示例:
localStorage.setItem("last_notification", timestamp)
localStorage.getItem("last_notification")
参考:https://developer.mozilla.org/en-US/docs/Web/API/Window/localStorage