javascript - 现场通知系统

标签 javascript codeigniter mootools

我的任务是构建一个日历和议程库(我正在开发 CodeIgniter 框架),它显示一个日历,并且用户可以在该日历上设置事件。 这些事件将有一个通知系统,包括电子邮件和用户浏览网站时的弹出窗口。

我的问题是当用户在网站上时如何处理通知部分。我已经决定通过一个 cronjob 来完成该电子邮件,该 cronjob 将每 x 分钟运行一次,并检查是否需要发送通知电子邮件。

现场通知是另一回事。 我该如何处理这个问题?我只是不能每隔 x 秒向服务器发出一个 ajax 请求,因为这会给系统带来 Not Acceptable 负载。 (当然,当最终通知用户时,必须发出请求,以在数据库上将用户设置为“已提醒”)。 我不能仅仅依赖于用户的日期时间,因为他可能在世界任何地方并且时间会有所不同。 如何检查是否必须向用户通知事件,避免向服务器重复发出请求?如有任何意见,我们将不胜感激。

最佳答案

我可以看到使用setTimeout来做到这一点。假设用户在提醒到期前 $minutesTilDue 分钟访问您的页面。假设 jQuery/PHP:

$(function(){
    setTimeout(function(){
       showEventReminder(<?php json_encode($event) ?>);
    }, <?php echo $minutesTilDue ?> * 60 * 1000);
});

没什么太花哨的,但取决于您的要求......

干杯

关于javascript - 现场通知系统,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13710830/

相关文章:

javascript - Laravel 5.3 AJAX 登录不重定向

javascript - JSON.decode 和 JSON.encode 分别代表什么?

php - 使用此 Facebook 风格 Lightbox - 请求 AJAX - 在页面上覆盖多个按钮

javascript - Firefox 57 检查控制台中的对象消失了

javascript - 从表单 javascript 读取数字值

php - 在 Codeigniter 中手动调用/调用 Hook

php - Codeigniter 中的 session 如何工作

codeigniter - 如何让 form_dropdown() 在 Codeigniter 中显示选定的值?

javascript - 如何解决 jQuery 和 mootoools 冲突?

javascript - 如何使用 karma-mocha/chai-enzyme 对基本三元进行单元测试?