編集:ああ、うん、私はあなたが「jQuery Mobile」と言ったことに気づきました、私は最初にそれをmobilelolのjqueryとして読みました。うーん、これはおそらくjQMが通常のjqueryと同じようにajaxをサポートしている場合にのみ機能します
二次的なajaxリクエストを考えましたが、それは必要ありません。このようにAJAXを設定し、タイムアウトを設定するだけです。サーバーが応答するのに4秒以上かかる場合(ブロードバンド接続には十分ですが、一部の電話では10〜15秒かかる場合があります)、再試行制限までajaxリクエストを再試行します。これを設定できます。 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;
}
}
}
});