我正在使用jQuery Mobile创建Web应用程序来查看和更新CRM类型系统。jQuery.get将请求排队,直到网络连接可用
移动应用程序使用jQuery.get
和jQuery.post
发送更新,并且在网络连接可用时它们工作正常。
当网络连接不可用时,我应该如何编码或使用什么来排队jQuery.get
和jQuery.post
呼叫,以便在再次变为可用时发送它们。
我正在使用jQuery Mobile创建Web应用程序来查看和更新CRM类型系统。jQuery.get将请求排队,直到网络连接可用
移动应用程序使用jQuery.get
和jQuery.post
发送更新,并且在网络连接可用时它们工作正常。
当网络连接不可用时,我应该如何编码或使用什么来排队jQuery.get
和jQuery.post
呼叫,以便在再次变为可用时发送它们。
编辑:啊poo,我只是注意到你说的'jQuery Mobile',我最初读为jquery移动lol。嗯,这可能只会工作,只要jQM支持阿贾克斯像正常的jquery
我有一个想法与次要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;
}
}
}
});
我已经去检查,如果在线和在饼干quing直到在线 –
你能不重视你的jQuery函数为“已启用数据连接” event.Find很难想象没有一个? –