我正在使用jQuery Mobile创建一个webapp来查看和更新CRM类型系统。
移动应用使用jQuery.get
和jQuery.post
发送更新,当网络连接可用时,它们可以正常工作。
当网络连接不可用时,我应该如何编码或用什么来排队jQuery.get
和jQuery.post
来电,以便在它再次可用时发送。
答案 0 :(得分:1)
我有一个关于辅助ajax请求的想法,但你不应该那样做。只需像这样设置你的AJAX,并给它一个超时。如果需要> 4(应该足够宽带连接,但有些手机可能需要~10-15秒)服务器才能响应,它只会再次尝试ajax请求到retryLimit,可以设置,然后再更改在50次之后(即,当程序空闲并且可能没有数据时,它应该发送吗?)。当它连接时,它将转到成功函数,然后将数据发送到服务器。
所以它就像:
$.ajax({
type: 'GET',
timeout: 4000,
tryCount : 0,
retryLimit: 50,
success:function(data) {
sendSavedData();
}
error: function(xhr, textStatus, errorThrown) {
if(textStatus == 'timeout') {
this.tryCount++;
if(this.tryCount <= this.retryLimit) {
$.ajax(this);
return;
}
var check = confirm('We have tried ' + this.retryLimit + ' times to do this and the server has not responded. Do you want to try again?');
if(check) {
this.timeout = 200000;
$.ajax(this);
return;
} else {
return;
}
}
}
});