我有我的PHP/MySQL的网站之一的简单和通用内部的消息服务,以独特的messageID
,from
,to
,subject
,message
,time
和isRead
。检查用户是否有新邮件的最有效方法?
一般来说,检查用户是否有新邮件的最佳方法是什么?
我应该在主用户表上存储一个简单的二进制触发器,当用户向他们发送消息时切换为1,然后让用户在每个页面负载上检查1,如果有,则提醒他们新邮件(并且每当他们进入收件箱时将其设置为0)?但是,如果它是垃圾邮件,我们在用户阅读之前删除它呢?
或者我应该存储用户阅读的最后一条消息的messageid
,然后检查最新的消息,并查看它是否比他读的最后一条消息更近,并且如果是这样提醒他?但是,我应该如何以及在哪里存储这些信息?
考虑到我们必须检查每个页面上的新消息,是否有另一种更有效的方法?
如果用户转到他的收件箱,它不应该再向他显示他在收件箱中检查时收到的任何邮件都有“新邮件”,无论他是否实际点击阅读他们与否。
谢谢!
编辑:我的一些用户从非常基本的电话访问我的网站,没有cookie甚至Javascript,所以请记住这一点。
您的消息对象是否有状态字段,例如可以查询的“新建”或“读取”状态?在查看hotmail/gmail或类似的东西时,您可以将读取的邮件切换回未读,我假设他们也正在使用某种状态字段。 – Nope
@Francois:我在我的OP中有一个isRead'字段,但是这是如果这个特定的消息被实际读取或没有。 “新消息”警报有点不同,因为它会在用户上次检查收件箱后收到新消息时提醒用户。那有意义吗? – ProgrammerGirl
如何使用websocket?从服务器你可以以异步的方式发送消息到浏览器,然后浏览器可以做任何需要的信息 – marcelog