代码之家  ›  专栏  ›  技术社区  ›  Nikhil

长轮询和setTimeout之间的区别

  •  1
  • Nikhil  · 技术社区  · 12 年前

    长轮询和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 回复  |  直到 12 年前
        1
  •  0
  •   timmkrause    11 年前

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

    长轮询保持客户端请求打开,直到有新的数据要发送到客户端。 Wikipedia 充其量描述一下:

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