Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/466.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/88.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 如何在脱机模式下对ajax请求进行排队,并在使用offline.js连接到internet时自动执行?_Javascript_Jquery_Ajax_Get_Offline - Fatal编程技术网

Javascript 如何在脱机模式下对ajax请求进行排队,并在使用offline.js连接到internet时自动执行?

Javascript 如何在脱机模式下对ajax请求进行排队,并在使用offline.js连接到internet时自动执行?,javascript,jquery,ajax,get,offline,Javascript,Jquery,Ajax,Get,Offline,请用一个ajax示例进行解释。 这是我当前的代码 <div id="status">Status is:</div> <button onclick="getData()">Get Data</button> <script> // Set our options for the Offline detection library Offline.options = { checkOn

请用一个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>
状态为:
获取数据
//设置脱机检测库的选项
脱机。选项={
checkOnLoad:true,
检查:{
图片:{
url:function(){
返回'http://esri.github.io/offline-editor-js/tiny-image.png?
}
},
活动:“图像”
},
请求:正确
}
离线。开启(“启动”,互联网启动);
离线。打开(“关闭”,互联网关闭);
var statusDiv=document.getElementById(“状态”);
statusDiv.innerHTML=“状态为:”+Offline.state;
函数getData(){
//看看互联网是上是下
Offline.check();
//如果互联网已开通,请继续检索数据。
$.ajax({url:http://rest-service.guides.spring.io/greeting,成功:函数(结果){
调试器
警报(JSON.stringify(result));
}});
}
函数internetUp(){
log(“Internet已启动”);
statusDiv.innerHTML=“状态为:向上”;
}
函数internetDown(){
log(“Internet已关闭”);
statusDiv.innerHTML=“状态为:向下”;
}
我想在调用过程中以脱机模式对ajax请求调用进行排队,并想在连接到internet时自动执行I是在internet启动时触发
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
                  });          
              }
}
function internetUp(){
log(“Internet已启动”);
statusDiv.innerHTML=“状态为:向上”;
var requests=['example.com','example2.com','whatever.com'];

对于(设i=0;iIt非常简单。与其发送请求,不如将请求参数放入数组中。一旦联机,从数组的开头一个接一个地获取项目,并从中构造请求。但是,通常不再需要延迟请求的结果。因此,发送新请求可能是一个更合理的解决方案,一旦您联机,就不必担心队列,因为队列中不存在对请求用途的了解。