/ / Stan połączenia z Internetem przez navigator.onLine nie działa poprawnie i pokazuje zły stan, gdy internet nie jest podłączony - javascript, html5, wdrożenie internetowe

Stan połączenia z Internetem przez navigator.onLine nie działa poprawnie i pokazuje zły stan, gdy internet nie jest podłączony - javascript, html5, wdrożenie internetowe

Tworzę aplikację internetową, która może działać zarówno w trybie offline, jak i online. W związku z tym muszę sprawdzić, czy Internet działa poprawnie, czy też nie.

navigator.onLine

w JavaScript. Próbowałem czegoś takiego;

if (navigator.onLine) {
// Internet is connected
// work in online Mode
}
else{
// Internet is disconnected
// work in offline mode
}

Działa dobrze, ale czasami daje zły status. Zauważyłem to, kiedy zmieniłem ip i / lub brama i ustawić je źle, aby odłączyć mój dostęp do Internetu. Żadna strona internetowa nie była dostępna po zmianie mojej ip ale navigator.onLine pokazywanie statusu internetu online. Ponownie uruchomiłem system, wyczyściłem pamięć podręczną przeglądarki, ale stanąłem przed tym samym problemem. Czytałem także o tym samym problemie, z którym borykali się ludzie, ale nie otrzymałem dobrego rozwiązania. Jak mogę rozwiązać ten problem? Wszelkie sugestie!

Odpowiedzi:

1 dla odpowiedzi № 1

Jak wspomniano w dokumentacji tej funkcji:

W przeglądarce Chrome i Safari, jeśli przeglądarka nie jest w stanieaby połączyć się z siecią lokalną (LAN) lub routerem, jest offline; wszystkie pozostałe warunki są prawdziwe. Tak więc, chociaż można założyć, że przeglądarka jest w trybie offline, gdy zwraca fałszywą wartość, nie można założyć, że prawdziwa wartość oznacza, że ​​przeglądarka może uzyskać dostęp do Internetu. Możesz otrzymywać fałszywe alarmy, na przykład w przypadkach, gdy na komputerze działa oprogramowanie do wirtualizacji, które ma wirtualne karty Ethernet, które są zawsze "połączone". Dlatego jeśli naprawdę chcesz określić status przeglądarki w trybie online, powinieneś opracować dodatkowe sposoby sprawdzania ...

https://developer.mozilla.org/en-US/docs/Web/API/NavigatorOnLine/onLine

Oznacza to, że nie możesz polegać na tej funkcjiokreślić łączność. Teraz to zależy od twojej aplikacji - co możesz zrobić. Jednym ze sposobów jest wysyłanie pakietów z sercem do jakiegoś interfejsu REST na twoim serwerze.