我在写一个需要发送通知的Web应用程序。它每30秒检查12个不同的事物,如果其中一个符合标准,它应该发送通知;那么它应该在下一个30分钟(小时和半小时)间隔之前不发送另一个通知。你如何检查通知是否已经发送,而不是再次发送?我认为这是通过标签完成的,但具有相同标签的两个通知仍然会弹出,第二个只会替换第一个。Web通知API - 每个周期只显示一次
用于生成通知功能是
function randomNotification(whoisit, tagtoPass) {
var message = whoisit + " is getting a notification";
var options = {
body: message,
icon: 'logo.png',
tag: tagtoPass,
}
var n = new Notification('Website Says:',options);
setTimeout(n.close.bind(n), 5000);
}
即函数是从经由每30秒的Ajax加载其他脚本调用。该脚本检查数据库,以查看12件事中的一件是否处于需要通知的状态,然后调用该功能并传递该名称和该30分钟间隔的唯一标签。
此外,我已经注意到,此代码基于Mozilla的开发人员文档,位于Notifications API,不会将通知添加到OS X通知中心。
可以如[这篇文章描述的使用Redis的锁(http://blog.pushpad.xyz/2017/07/how-to -throttle-notifications-to-user-and-reduce-cost /) – collimarco