我如何显示通知每用户与jquery和php


How can i show notification per user with jquery and php?

我想通过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发送请求时
有解决办法吗?!

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

你可以这么做。

步骤1)当admin用户键入消息时,将其存储在数据库中。你可以参考下面的例子。

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,因此下次相同的消息将不会出现在用户

希望对你有帮助