В моем приложении PhoneGap я сначала проверяю, подключено ли устройство к Интернету, прежде чем запускать код, вызывать API и т. д.
if (window.navigator.onLine == false) {
//error handling
} else {
//do stuff & call API
}
Это отлично работает, но если устройство теряет соединение и страница перезагружается В ТЕЧЕНИЕ 5 секунд или около того после того, как я отключился, код все еще срабатывает и вызывается API, хотя устройство больше не подключено. Если страница перезагружается ПОСЛЕ примерно 5 секунд, обработка ошибок запускается, как и ожидалось.
Таким образом, похоже, что после потери соединения требуется примерно 5 секунд, чтобы перейти в «автономный режим». Я дважды проверил это с помощью автономного события, и оно было запущено только после этих 5 секунд.
document.addEventListener("offline", onOffline, false);
function onOffline() {
alert("now offline");
}
Итак, есть ли способ немедленно проверить, когда соединение потеряно или отключено или что-то в этом роде?