我有一个用 PHP + MySQL + Javascript 编写的在线聊天室程序
我用来jQuery.post()
从chat.php
. 这个 php 程序从 MySQL 读取数据并将echo
其发送到页面上。
当有新消息进来时如何提醒用户?我只希望它在聊天室页面没有聚焦时发出警报。
顺便说一句,闪烁网页标题是提醒用户的好主意吗?
我有一个用 PHP + MySQL + Javascript 编写的在线聊天室程序
我用来jQuery.post()
从chat.php
. 这个 php 程序从 MySQL 读取数据并将echo
其发送到页面上。
当有新消息进来时如何提醒用户?我只希望它在聊天室页面没有聚焦时发出警报。
顺便说一句,闪烁网页标题是提醒用户的好主意吗?
要检查页面是否聚焦,您可以使用该document.hasFocus
功能。true
如果文档有焦点,则返回,false
否则返回。
虽然 Opera 似乎不支持它,所以如果支持 Opera 对您很重要,您可以观察focus
和blur
事件window
以确定窗口是否处于焦点(这里是一个示例。)
关于“如何提醒用户”的话题,这完全由你决定。您可以按照正常方式进行操作,在您的标题前加上“ (x) ”,其中x是新消息的数量。您还可以使用 Flash 甚至更好的 JavaScript 音频 API 来提醒用户噪音:
var sound = new Audio('sound-file.wav');
sound.play();
不过,请务必严格自愿地保留音频反馈。
如果您想更加花哨,可以查看Chrome 桌面通知。每当有新消息到达时,任何运行 Chrome 的用户都可以收到桌面通知(与您收到 Skype 或 MSN 消息时收到的通知相同)。这是一个使用示例。
您必须使用 HTML5 标签而不是使用 Javascript/JQuery 来控制它!
这对我有用: http ://css-tricks.com/play-sound-on-hover/
在 html 源代码中:
<audio id="chat_sound" controls>
<source src="audio/notification.mp3" type="audio/mp3" preload="auto">
<source src="audio/notification.ogg" type="audio/ogg" preload="auto">
Your browser isn't invited for super fun audio time.
</audio>
在 JavaScript 中:
var sound_notification = $("#chat_sound")[0];
那么你可以使用这些调用:...``
sound_notification.pause();
sound_notification.play();
...
给每条消息一个唯一的 ID,例如每 5 秒轮询一次您的 chat.php,然后将客户端的最后一条消息 ID 与您从 chat.php 中获得的信息进行比较。
这很容易做到。
如果你想要一些更酷、更实时的解决方案,你应该看看 www.pubnub.com 或类似的服务。
您可以使用 facebook、skype 或其他著名的“聊天室”方法。
当您收到用户的新回复时,您有两种方法:
红色是侵略性的颜色,但这取决于您的网站颜色...
对于手电筒,只需几秒钟,否则用户会厌倦聊天系统......
对于网页设计最佳实践,这里有一篇非常好的文章......