function onNetChange() {
var nt = plus.networkinfo.getCurrentType(); //这个是监听网络信号
if (nt == "2" || nt == "3" || nt == "5" || nt == "6") {
mui.toast("在线模式");
var tx = db.transaction("users", READ_WRITE); //本地存储功能的代码
var store = tx.objectStore("users"); //本地存储功能的代码
var index = store.index("Ifnet"); //本地存储功能的代码
var req = index.openCursor(IDBKeyRange.only("1")); //本地存储功能的代码
req.onsuccess = function(evt) { //本地查询后成功的方法
var res = evt.target.result;
if (res) {
var net = [res.value]
for (j = 0; j < net.length; j++) {
mui.ajax('http://XXXXX', {
data: {
tugwork_s_id: net[j].TUGWORK_S_ID,
IsMooring: net[j].If_mooring,
IsPickup: net[j].ISPICKUP,
godate: net[j].Godate,
startdate: net[j].Startdate,
enddate: net[j].Enddate,
backdate: net[j].Backdate
},
dataType: 'json',
type: 'post',
timeout: 5000,
success: function(res) {
console.log(JSON.stringify(res));
},
error: function(xhr, type, errorThrown) {
console.log('Update_local');
}
});
}
res.continue(); //这个是本地存储的游标下移,如果不写这个就能查出来一条
}
};
req.onerror = function(evt) { //本地查询后失败的方法
console.error("UpData error:", evt.target.errorCode || evt.target.error);
};
}
else {
mui.toast("离线模式");
}
}
代码就是这个样子,我这么写发送AJAX非常的混乱。虽然数据保存成功了。我想写一个递归的方法但是不知道应该怎么写。请哪位大神帮我看看我应该如何把这个for循环变成递归的写法。就比如说我本地查询到3条符合标准的数据。然后我就发送3次AJAX请求。目前不考虑失败的情况。默认理想情况下都是成功的。
递归实现的话感觉还是要用一个累加变量作为终止发送请求的标记,和你写的循环的道理差不多