В моето приложение 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");
}
И така, има ли начин да проверите незабавно, когато връзката е загубена или е дезактивирана или нещо подобно?