所以我用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;

但这不是问题所在。我的问题是,如何加载所有打开聊天窗口的用户的数据(=刷新聊天),只有当有人发布新消息(=在数据库中插入新行),而不运行每秒检查某些内容的脚本?

最佳答案

您需要服务器生成的事件。
最快和推荐的解决方案基于:

Node.js

更多的可能性使用:
ajax长轮询
HTML5服务器发送事件
HTML5网站
彗星
附加链接和示例:
socket.io and node.js to send message to particular client
http://dev.w3.org/html5/eventsource/
http://www.ibm.com/developerworks/web/library/wa-reverseajax1/index.html

关于php - 仅当有人提交新消息时才加载数据,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/24800553/

10-13 07:11
查看更多