2011-09-01 38 views
1

我正在使用jQuery Mobile创建Web应用程序来查看和更新​​CRM类型系统。jQuery.get将请求排队,直到网络连接可用

移动应用程序使用jQuery.getjQuery.post发送更新,并且在网络连接可用时它们工作正常。

当网络连接不可用时,我应该如何编码或使用什么来排队jQuery.getjQuery.post呼叫,以便在再次变为可用时发送它们。

+0

你能不重视你的jQuery函数为“已启用数据连接” event.Find很难想象没有一个? –

回答

1

编辑:啊poo,我只是注意到你说的'jQuery Mobile',我最初读为jquery移动lol。嗯,这可能只会工作,只要jQM支持阿贾克斯像正常的jquery

我有一个想法与次要ajax请求,但你不应该需要的。只需像这样设置你的AJAX,并给它一个超时。如果服务器响应的时间大于4(应该足够用于宽带连接,但某些电话可能需要〜10-15秒),则它只会再次尝试ajax请求直到retryLimit,然后可以设置它,然后在50次之后(也就是说,当程序空闲并且没有数据时它应该发送吗?)之后又改变了。当它连接时,它将转到成功功能,然后它将数据发送到服务器。

所以它会像:

$.ajax({ 
    type: 'GET', 
    timeout: 4000, 
    tryCount : 0, 
    retryLimit: 50, 
    success:function(data) { 
      sendSavedData(); 
    } 
    error: function(xhr, textStatus, errorThrown) { 
     if(textStatus == 'timeout') { 
      this.tryCount++; 
      if(this.tryCount <= this.retryLimit) { 
      $.ajax(this); 
      return; 
      } 
      var check = confirm('We have tried ' + this.retryLimit + ' times to do this and the server has not responded. Do you want to try again?'); 
      if(check) { 
      this.timeout = 200000; 
      $.ajax(this); 
      return; 
      } else { 
      return; 
      } 
     } 
    } 
    }); 
+0

我已经去检查,如果在线和在饼干quing直到在线 –