新消息到达时弹出

时间:2011-01-01 21:50:31

标签: php javascript ajax

我的网站上有一个功能齐全的消息系统。 我希望通过在有新消息的情况下让一个框弹出窗口改变成员来改进这一点。

它会说“你有新消息,你想查看吗?”。 您可以单击“是”或“否”。

我该怎么做呢? 从来没有尝试过这样的事情!

由于

更新。 我很缺乏使用这里所需技术的经验。 我将如何确保每个页面都有效? 我会包含哪些代码? 这是我需要改进的东西,因为它开辟了更多的可能性!

4 个答案:

答案 0 :(得分:1)

您可以在后台进行循环AJAX调用,每隔几分钟检查一次。如果服务器返回一个URL(或者与“无消息”不同的东西),那么你将获得弹出窗口,如果它们点击OK,则发送到URL(使用Javascript中的基本confirm()对话框。)

但是要小心,如果你在这方面咀嚼CPU功率,用户的耐心会消瘦。

答案 1 :(得分:0)

如果用户有新消息,您必须使用服务器检查常规,使用javascript中的计时器(所以客户端代码)。由于HTTP的性质(它是无状态的),因此无法从服务器推送此通知。

答案 2 :(得分:0)

您有3个选项:

  1. 每次用户重新加载页面时显示消息。简单快捷。
  2. 通过向服务器发送AJAX请求来显示消息。当你有很多用户时可能会非常糟糕,所以要确保响应时间很短。
  3. 使用WebSocket从服务器发送消息。最新技术,但仅在少数浏览器中支持,因此在实施之前请检查兼容性问题。
  4. 如果我不需要即时用户反应,我个人会使用#1。 #2适合网络聊天。 #3是通用的,但很少使用。

    通常你会在后台运行一个AJAX脚本,运行时间超长(超过30秒),以及在页面重新加载后显示消息的功能。它结合了#1和#2。

答案 3 :(得分:0)

首先,你应该看看以下内容:

http://stanlemon.net/projects/jgrowl.html

你应该加载jQuery + jGrowl并创建一个心跳功能,每隔X秒轮询服务器一次。

当服务器收到来自JavaScript的请求时,您会检查数据库中是否有标记为un_ 已通知的最新消息 (未读取)

您编译一个列表并将其标记为已通知,然后再将列表发送给JavaScript,然后将其传递给jGrowl并显示通知,