如何使用新邮件更新聊天窗口

时间:2013-10-02 19:50:00

标签: javascript

setInterval(function{

 //send ajax request and update chat window


}, 1000)

有没有更好的方法来更新聊天新消息?这是使用setInterval更新聊天的正确方法吗?

2 个答案:

答案 0 :(得分:2)

有两个主要选项(或更多说流行方式)

<强>拉

首先是拉,这就是你在做什么。每隔x(毫秒)检查服务器配置是否已更改。

这是html4方式(不包括flash等,所以只有html / js)。对于php而言,这不是最好的方法,因为你为sinle用户提供了每分钟很多连接(在你的示例代码中每秒至少有60个连接)。

<强>推

接下来是推动。这更像是HTML5的方式。这是由websockets实现的。令人高兴的是客户端正在“列出”到连接并等待更新。当它被更新时,它会使事件发生变化。

这在PHP中实现并不好,因为你需要一个constanct连接,你的服务器很快就会被溢出,因为PHP无法将连接推送到后台(如果我是正确的,可以像Java一样)。 / p>

我亲自制作了一个小型聊天应用并使用了pusher。它完美地运作。我只使用免费版本,所以不知道它有多贵。

答案 1 :(得分:0)

非常多,是一个小调整,而不是在一个区间内封装一个AJAX调用(如果服务器上出现问题,这可能导致未回复的请求汇集),你应该在AJAX中抛出一个setTimeout回调创建递归调用。考虑:

function callAjax() {
    $.ajax(options).done(function() {
        //do your response
        setTimeout(callAjax, 2000);
    });
}

callAjax();