如何在离线模式下排队 ajax 请求并在使用离线 .js 连接到互联网时自动执行?

How to queue ajax request in offline mode and execute automatically when connects to internet using offline .js ?

请举例说明ajax。 这是我当前的代码

<div id="status">Status is:</div>
  <button onclick="getData()">Get Data</button>
  <script>
      // Set our options for the Offline detection library
      Offline.options = {
          checkOnLoad: true,
          checks: {
              image: {
                  url: function() {
                      return 'http://esri.github.io/offline-editor-js/tiny-image.png?
                  }
              },
              active: 'image'
          },
          requests : true
      }

      Offline.on('up', internetUp);
      Offline.on('down',internetDown);
      var statusDiv = document.getElementById("status");
      statusDiv.innerHTML = "Status is: " + Offline.state;

      function getData() {

          // See if internet is up or down
          Offline.check();
                  // If the internet is up go ahead and retrieve data.
                  $.ajax({url:"http://rest-service.guides.spring.io/greeting", success: function(result){
                    debugger
alert(JSON.stringify(result));
    }});

      }

      function internetUp(){
          console.log("Internet is up.");
          statusDiv.innerHTML = "Status is: up";
      }

      function internetDown(){
          console.log("Internet is down.");
          statusDiv.innerHTML = "Status is: down";
      }
  </script>

我想在通话期间以离线模式对 ajax 请求进行排队,并希望在连接到互联网时自动执行

Offline.on('up', internetUp); 是一个事件,当互联网连接时触发 internetUp 功能。然后你可以这样做:

    function internetUp(){
              console.log("Internet is up.");
              statusDiv.innerHTML = "Status is: up";

              var requests = ['example.com','example2.com','whatever.com'];


              for(let i =0;i<requests.length;i++){

                            $.ajax({
                    url: requests[i]
                  }).done(function(data) {
                    console.log(data);//here callback of each request
                  });          
              }
}

其中请求代表队列 ajax 您希望存储为数组的操作。