使用setTimeout轮询URL而不延迟第一轮询

时间:2014-09-22 15:17:12

标签: javascript jquery polling

我正在使用此处的代码段(http://techoctave.com/c7/posts/60-simple-long-polling-example-with-javascript-and-jquery):

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

        //Setup the next poll recursively
        poll();
      }, dataType: "json"});
  }, 30000);
})();

经常轮询本地URL以检查记录的状态。但是我也希望在页面加载后立即执行轮询,而上面的代码片段会启动一个循环,该循环仅在超时期限之后首先触发(在这种情况下为30秒)。

我如何修改上述内容以轮询immediatley,然后每隔30秒进行一次。 :)

TIA!

1 个答案:

答案 0 :(得分:2)

只需移动你的settimeout

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