投票工作多长时间

spi*_*ral 4 javascript asp.net ajax jquery

我正在研究ajax长轮询,但我很困惑.传统的ajax调用和长轮询有什么不同

   var lpOnComplete = function(response) {
   alert(response);
   // do more processing
   lpStart();
  };

    var lpStart = function() {
    $.post('/path/to/script', {}, lpOnComplete, 'json');
    };

    $(document).ready(lpStart);
Run Code Online (Sandbox Code Playgroud)

这个例子只是以递归方式调用服务器..与setInterval中的传统调用有什么不同.

Moh*_*dil 10

顾名思义,Long Polling意味着长期投票.

$.post('/path/to/script', {}, lpOnComplete, 'json');
Run Code Online (Sandbox Code Playgroud)

以下是实际进程启动的内容,您对服务器上的某些脚本进行ajax调用,在这种情况下/path/to/script,您需要使您的服务器脚本(php例如)足够智能,以便它只在需要的数据可用时响应请求,脚本应该等待指定的时间段(例如1分钟),如果没有数据可用,最多1分钟,那么它应该返回没有数据.

一旦服务器返回一些东西,在你的回调函数中你再次对同一个脚本进行ajax调用,服务器脚本再次继续该过程.

考虑一个聊天应用程序,按照常规方式,即使没有消息可用,你也会每隔2秒轮询一次服务器并返回服务器.如果一分钟服务器没有给你新消息,你最后会在服务器上点击30次等一下.

现在考虑长轮询方式,将服务器脚本设置为等待新消息一分钟.从客户端,您对脚本进行一次ajax调用,并说明下一分钟没有消息到达,服务器将在1分钟后才响应.你在最后1分钟内只打了一次服务器.你能想象30 Hit Vs 1 Hit