如何在离线模式下排队 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 您希望存储为数组的操作。
请举例说明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 您希望存储为数组的操作。