我有一个用PHP + MySQL + Javascript编写的在线聊天室程序
我使用jQuery.post()从chat.php获取新的聊天消息。这个php程序从MySQL中读取数据,并在页面上echos。
当有新的消息进来时,如何提醒用户?我只想让它在聊天室页面未被聚焦时发出警报。
顺便问一下,闪现网页标题是提醒用户的好主意吗?
发布于 2012-08-06 23:11:15
给每条消息一个唯一的ID,例如,每5秒轮询一次您的chat.php,并将客户端的最后一条消息ID与您从chat.php获得的ID进行比较。
这很容易做到。
如果你想要一些更酷、更实时的解决方案,你应该看看www.pubnub.com或类似的服务。
发布于 2012-08-06 23:11:39
你可以使用facebook、skype或其他著名的“聊天室”方法。
当你为user得到一个新的响应时,你有两种方法:
红色是有攻击性的颜色,但这取决于你的网站颜色。
对于手电筒,只使用几秒钟,否则用户会对聊天系统感到厌倦。
对于网页设计的最佳实践,有一篇非常好的文章是here...
发布于 2012-08-06 23:16:24
要检查页面是否有焦点,可以使用document.hasFocus函数。如果文档被聚焦,则返回true,否则返回false。
但是在Opera中似乎不支持它,所以如果支持Opera对您来说很重要,您可以查看window的focus和blur事件,以确定窗口是否处于焦点状态(here is an example)。
在“如何提醒用户”的主题上,这真的是由你来决定。你可以用通常的方法,在你的标题前加上一个"(x)“,其中x是新消息的数量。你也可以用闪光灯或者更好的JavaScript Audio API来提醒用户有噪音:
var sound = new Audio('sound-file.wav');
sound.play();尽管如此,一定要保持音频反馈严格自愿的。
如果你想变得更花哨,你可以去看看Chrome desktop notifications。任何运行Chrome浏览器的用户都可以在收到新消息时收到桌面通知(与您收到Skype或MSN消息时收到的通知相同)。Here is an example of usage。
https://stackoverflow.com/questions/11830760
复制相似问题