我有一个用PHP + MySQL + Javascript编写的在线聊天室程序
我使用jQuery.post()
从chat.php
获取新的聊天消息。这个php程序从MySQL读取数据,并在页面上echo
读取数据。
如果有新消息进入,我该如何提醒用户?我只希望它在聊天室页面没有聚焦时发出警报。
顺便说一句,闪烁网页标题是一个提醒用户的好主意吗?
答案 0 :(得分:0)
为每条消息提供一个唯一的ID,例如每5秒轮询一次chat.php,并将客户的最后一条消息ID与您从chat.php获得的内容进行比较。
这很容易做到。
如果您想要一些更酷,更实时的解决方案,您应该查看www.pubnub.com或类似的服务。
答案 1 :(得分:0)
您可以使用facebook,Skype或其他着名的“聊天室”方法。
当您收到用户的新回复时,您有两种方法:
红色是咄咄逼人的颜色,但这取决于您的网站颜色...
对于手电筒,只需几秒钟即可使用,否则用户会厌倦聊天系统...
对于网页设计最佳实践,一篇非常好的文章是here ...
答案 2 :(得分:0)
要检查页面是否有焦点,您可以使用document.hasFocus
功能。如果文档是聚焦的,则返回true
,否则返回false
。
虽然Opera似乎不支持,但如果支持Opera对您很重要,您可以观看focus
的{{1}}和blur
事件以确定是否有窗口是否关注焦点(here is an example。)
关于“如何提醒用户”的主题,这取决于您自己决定。您可以按照正常方式执行此操作,在标题前加上“(x)”,其中 x 是新邮件的数量。您还可以使用Flash或更好的JavaScript Audio API警告用户噪音:
window
请务必保持音频反馈严格自愿。
如果你想要更加想象,你可以看看Chrome desktop notifications。每当有新消息到达时,运行Chrome的任何用户都可以收到桌面通知(与收到Skype或MSN消息时的通知相同)。 Here is an example of usage
答案 3 :(得分:0)
您必须使用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();
...