2013-08-12 15 views
6

Opracowałem aplikację i działa ona znakomicie przez połączenie Ethernet, ale teraz uruchamiam moją aplikację przez sieć bezprzewodową i widzę, że połączenie bezprzewodowe czasami się rozłącza.JavaScript, aby sprawdzić stan połączenia bezprzewodowego

Chcę sprawdzić stan połączenia bezprzewodowego za pomocą javascript, aby móc wyświetlać znaczący komunikat o błędzie na ekranie.

Czy mogę to osiągnąć za pomocą zwykłego kodu javascript, bez korzystania z frameworka takiego jak jQuery?

+2

Wygląda na to, że chcesz wykonać coś w rodzaju podstawowej operacji pingowania. – j08691

+10

Wygląda na to, że możesz chcieć nasłuchiwać zdarzeń '' online' i 'offline'' (https://developer.mozilla.org/en-US/docs/Online_and_offline_events) w' oknie'. – apsillers

+2

Możesz wypróbować 'navigator.onLine', ale to nie sprawdza, czy twój komputer może uzyskać dostęp do Internetu, jeśli jest w sieci Wi-Fi, będzie tylko powiedzieć, czy jest podłączony do routera. – putvande

Odpowiedz

5

Błędy przeglądarki i ikony w zasobniku systemowym będą wystarczająco wskazywać użytkownikowi stan sieci bezprzewodowej.

Sposób, w jaki opisujesz swoją aplikację, wskazuje mi, że wykonujesz ciągłe zapytania w stylu AJAX, które są często przerywane. Zamiast koncentrować się na podstawowych połączeniach sieciowych, zalecam zastosowanie podejścia bardziej biznesowego: Jeśli aplikacja nie może utrzymywać połączenia (lub nie otrzymuje odpowiedzi w określonym czasie), po prostu powiadom użytkownika, że ​​nie można ustanowić połączenia (dla zwiększenia odporności, kontynuuj próbę, aż się uda - zobacz np. interfejs WWW GMail). Użytkownik będzie miał inne sposoby diagnozowania, dlaczego - Twoja aplikacja nie powinna i nie może znać przyczyny niepowodzenia, Twoja aplikacja wie tylko, że musi się połączyć z serwerem i nie może tego zrobić. (Jako bonus, błędy obsługi w ten sposób mogą dać podstawę do obsługi innych błędów po stronie serwera, np. Wyświetlanie komunikatu, jeśli usługi danych są wyłączone z powodu konserwacji itp.).

Jeśli jesteś ładowanie wszystkich danych po wczytaniu strony, zamiast wysyłania zapytań za pośrednictwem skryptów po wczytaniu, wtedy przeglądarka użytkownika wyświetli błąd wskazujący, że strona nie mogła zostać załadowana i nie musisz tego podawać.

+1

W każdym razie, czytaj komentarze na pytanie: Warto również zauważyć, że nieudane "pingowanie" nie oznacza nieudanego połączenia bezprzewodowego. Istnieją dziesiątki innych powodów, dla których nie można połączyć się z serwerem. –

0

można użyć coffee script. nie potrzebujesz jQuery, aby go użyć. Ostrzeże to tylko użytkowników, gdy ich sieć przestanie działać.

Powiązane problemy