Как поставить ajax-запрос в автономный режим и выполнить его автоматически при подключении к Интернету с помощью автономного режима .js? - PullRequest
0 голосов
/ 13 мая 2018

Пожалуйста, объясните одним примером 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, вызывающий в автономном режиме во время вызова, и хочу автоматически выполнять его при подключении к Интернету

1 Ответ

0 голосов
/ 13 мая 2018

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 очереди, которые вы хотите сохранить в виде массива.

...