gpt4 book ai didi

javascript - Web Notifications API - 每个周期只显示一次

转载 作者:行者123 更新时间:2023-11-30 15:00:20 24 4
gpt4 key购买 nike

我正在编写一个需要发送通知的网络应用程序。它每 30 秒检查 12 个不同的东西,如果其中一个符合标准,它应该发送通知;然后它不应该在接下来的 30 分钟(整点和半点)间隔之前发送另一个通知。您如何检查通知是否已发送并且不再发送?我以为这是通过标签完成的,但仍然会弹出两个具有相同标签的通知,第二个将取代第一个。

用于生成通知的函数是

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 的通知 API 开发人员文档)没有将通知添加到 OS X 通知中心。

最佳答案

您是否考虑过在 localStorage 中使用标志来存储上次发送通知的时间?

假设您存储了发送第一个通知的时间,然后再次检查它,如果它足够旧,您发送另一个通知并更新该标志。

即使您刷新网页,localStorage 数据也会保留。

例子:

localStorage.setItem("last_notification", timestamp)
localStorage.getItem("last_notification")

引用:https://developer.mozilla.org/en-US/docs/Web/API/Window/localStorage

关于javascript - Web Notifications API - 每个周期只显示一次,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46626482/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com