2014-02-21 91 views
0

我有一種Ajax輪詢週期 - 拉消息,處理消息,等待,再次拉... - 一切工作正常,直到用戶斷開互聯網(它可以是如此簡單用戶操作爲睡眠/休眠PC)。之後 - 至少在最新的Chrome中 - POST失敗(邏輯) - 但重新連接到互聯網後,輪詢週期不會再次開始(即使會話仍處於開啓狀態)。Ajax輪詢停止輪詢後互聯網斷開

jQuery(function(){ 
// ba polling main 
    function pollingMain() { 
      $.ajax({ 
       type: "POST", 
       url: ba_home_url+"/pollingscript.php", 
       data: { 
       "load": "something", 
       "data-one": 0, 
       "data-two": 0 
       }, 
       dataType: "json", 
       timeout: 60000, 
       success: function(data) { 
        if(data.status == 'nodata'){ 
        setTimeout(pollingMain,10000); 
        } else{ 
        if(data.status == 'okdata'){ 
         console.log('Ok data recived'); 
         setTimeout(pollingMain,10000); 
        } else{ 
         //server responded with something we dont know what is 
         setTimeout(pollingMain,10000); 
        } 
        } 

       }, 
       error: function(request, status, err) { 
        if(status == "timeout") { 
         setTimeout(pollingMain,10000); 
        } 
       } 
      }); 
    } 
    pollingMain(); 

}); 

這是我的代碼。我想我錯過了錯誤回調中的一些東西 - 但是我應該在那裏添加什麼錯誤狀態處理?

+0

'ba_home_url' =?它是'localhost','IP地址','計算機名稱' –

+0

只是一個url_base - 這不是問題:) –

回答

1

您正在檢查特定狀態「超時」。添加else語句來處理其他狀態。