【问题标题】:How can i show notification per user with jquery and php?如何使用 jquery 和 php 显示每个用户的通知?
【发布时间】:2016-10-25 05:16:56
【问题描述】:

我想通过 API
为每个用户显示通知 例如,如果通过服务器或任何管理员调用 api.php?user=1,如果有任何页面,则向 user1 显示警报,例如运行 alert('hi user 1');
或通过服务器或任何管理员调用 api.php?user=2,向 user2 显示警报,例如运行 alert('hi user 2');

我的解决方案是:

setInterval(function(){
  $.get('ajax_responder.php',dataObj,function(){
  });
},5000);

api.php 保存的请求和ajax_responder.php 为每个用户选择通知

但是这个解决方案不好,每 5 秒重新加载一次,我想要更好的解决方案,当调用 api.php 时向用户 X 发送请求
有解决办法吗?!

【问题讨论】:

  • 更好的解决方案是使用 NodeJS,期间。

标签: javascript php jquery


【解决方案1】:

如果用户不重复查询服务器,用户将无法收到您的通知。您可以使用websocket 双向发送/接收

【讨论】:

【解决方案2】:

你可以这样做。

步骤 1) 当管理员用户类型的消息存储在数据库中。你可以参考下面的例子。

TABLE NAME = USER_NOTIFICATION

==================================
USER_ID  | IS_READ  | MESSAGE
==================================
1          0          Hello User 1
-----------------------------------
2          0          Hello User 2
-----------------------------------

第 2 步)现在从前端编写 Ajax 调用,以继续检查每分钟或 5 分钟间隔(间隔取决于服务器处理请求的能力),特定登录用户是否有任何未读消息。

如果您使用的是 MySQL,那么您可以使用以下查询来检查未读通知

SELECT `message` from USER_NOTIFICATION WHERE `user_id` = 1 and `is_read` = 0

现在从上面的查询中得到结果后在通知 div 中显示它(记住创建具有固定位置的通知 div,所以它总是弹出)

第 3 步)当用户阅读管理员消息时,将 is_read 标志设置为 1,因此下次用户不会看到相同的消息

希望对你有帮助:)

【讨论】:

  • 谢谢,但我的解决方案就是这样,我想要其他更好的解决方案
  • 什么类型的其他解决方案,您在寻找特定的流程或语言或数据库或其他什么,请用“其他更好的解决方案”来澄清(只是想了解您的要求;))
猜你喜欢
  • 2011-09-24
  • 1970-01-01
  • 2012-11-19
  • 1970-01-01
  • 2021-08-07
  • 2011-06-05
  • 2015-11-01
  • 2013-03-14
  • 2021-07-17
相关资源
最近更新 更多