【发布时间】:2010-06-06 22:54:58
【问题描述】:
我目前有一个消息传递系统。 我希望做到这一点,以便当用户收到新消息时,他们会收到警报。也许是一个弹出窗口?就像一个消息框说“你有一条新消息”。
我怎样才能做到这一点? 谢谢
【问题讨论】:
标签: php
我目前有一个消息传递系统。 我希望做到这一点,以便当用户收到新消息时,他们会收到警报。也许是一个弹出窗口?就像一个消息框说“你有一条新消息”。
我怎样才能做到这一点? 谢谢
【问题讨论】:
标签: php
你不能在 php 中真正做到这一点,因为正常使用 php 意味着没有直接的用户交互。您需要做的是在例如 javascript 中实现相关的用户交互代码,并对托管 php 的服务器进行轮询(使用 AJAX 或类似方法),以查看是否应显示弹出窗口。
【讨论】:
这不仅仅是一个 php 问题。你需要制作一个这样的数据库表:
messageID
contents
...
popuped
userID
然后创建一个页面来获取尚未弹出的消息数量:
SELECT COUNT(*) AS nr FROM messages WHERE userID = :userID AND popuped = 0
然后设置弹出为 1:
UPDATE messages SET popuped = 1 WHERE userID = :userID
并打印 nr 字段。
然后,对于您网站上的每个页面,您需要发出一个预定的 ajax 请求(例如每 20 秒),该请求会加载该页面。如果结果高于零,则需要表明用户有消息。
对于 ajax 请求,请查看 mootools javascript 框架(或 jQuery、Prototype 等)
【讨论】:
您是否正在寻找“实时”消息,例如在用户执行其他操作时显示的警报?或者您是否正在寻找“静态”消息,例如在用户打开页面时显示的警报中?静态方法可以用服务器端的php来实现。 live 方法需要使用客户端技术。我建议使用 jQuery 和 jGrowl 以及类似 jQuery Timers 的东西来作为 live 方法。试试这个关于javascript timers here的SO问题
【讨论】: