1

我正在使用 jQuery Mobile 创建一个 webapp 来查看和更新​​ CRM 类型系统。

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

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

4

1 回答 1

1

编辑:啊便便,我刚刚注意到你说'jQuery Mobile',我最初将它读作jquery for mobile lol。嗯,这可能只适用于 jQM 支持与普通 jquery 相同的 ajax

我对辅助 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;
          }
      }
    }
  });
于 2011-09-01T12:25:13.363 回答