jQuery.Get将请求排队,直到网络连接可用

jQuery.get queue the request until network connection available

本文关键字:网络 连接 Get 请求 排队 jQuery      更新时间:2023-09-26

我正在使用jQuery Mobile创建一个web应用程序来查看和更新CRM类型的系统。

移动应用程序使用jQuery.getjQuery.post发送更新,当网络连接可用时,它们工作良好。

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

编辑:啊,我刚刚注意到你说"jQuery移动",我最初读到的是jQuery移动lol。嗯,这可能只有在jQM支持ajax的情况下才能工作,就像普通的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;
          }
      }
    }
  });