Редактировать: ау, я только что заметил, что вы сказали «jQuery Mobile», я сначала прочитал это как jquery для мобильных телефонов.Хммм, это, вероятно, будет работать только до тех пор, пока jQM поддерживает ajax так же, как обычный 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;
}
}
}
});