所以我在php中创建了非常简单的聊天框。它工作得非常好,但我必须设置从数据库到聊天窗口的不间断加载数据的脚本(不是最有效的方式,这就是我要问的原因):
<script type='text/javascript'>
$('#chatbox').html('Loading...');
$(document).ready(function() {
setInterval(function(){loop()}, 0);
function loop(){
$('#chatbox').load('/chatbox.php');
}
});
</script>
在chatbox.php中:
include '/classes/class.chatbox.php';
$chat = new Chat();
$chatboxMsg = $chat->getNewMessages();
echo $chatboxMsg;
但这不是问题。我的问题是,如何为所有打开聊天窗口的用户加载数据(=刷新聊天),只有当有人发布新消息(=将新行插入数据库),而不运行每秒检查一次的脚本?
答案 0 :(得分:2)
您需要服务器生成的事件。
最快和推荐的解决方案基于:
Node.js
使用的更多可能性:
附加链接和样本:
答案 1 :(得分:1)
我想你需要听众。以下是您如何以最佳方式实施它们:PHP Event-Listener best-practice implementation
答案 2 :(得分:1)
检查socket.io。你肯定会发现它是最简单的方法。当新消息出现时,您可以广播该消息。以下是您可以使用的一些参考资料
希望有所帮助