长轮询和setTimeout之间的区别

时间:2013-02-18 11:46:30

标签: settimeout long-polling polling

Long-Polling和setTimeout之间有什么区别 我发现这是为了长时间轮询,但它与setTimeout没有任何区别。

(function poll(){
    $.ajax({ url: "server", success: function(data){
        //Update your dashboard gauge
        salesGauge.setValue(data.value);

    }, dataType: "json", complete: poll, timeout: 30000 });
})();

1 个答案:

答案 0 :(得分:0)

我猜您的代码所做的是正常轮询。

长轮询使客户端请求保持打开状态,直到将新数据发送到客户端。 Wikipedia充其量描述了它:

  

通过长轮询,客户端从服务器请求信息   与正常轮询完全一样,除了它发出HTTP / S请求   (民意调查)频率慢得多。如果服务器没有   收到投票时客户可获得的信息,   服务器保留请求,而不是发送空响应   打开并等待响应信息变为可用。一旦它   是的,服务器立即向客户端发送HTTP / S响应,   完成打开的HTTP / S请求。通过这种方式通常的反应   延迟(信息首次可用之间的时间)   和下一个客户端请求)否则与轮询客户端相关联   被淘汰了。