Jeśli nie ma wystarczającego połączenia z internetem nie ładuj strony

0

Witam mam pytanie, jak napisać rozwiązanie aby strona wyświetliła komunikat "brak wystarczającego połączenia z internetem" w chwili kiedy internet w telefonie jest słaby.

4

Co do znaczy że internet jest słaby? Nie ma LTE? Czy spada poniżej prędkości?
Nie wiem, czy z poziomu przeglądarki jesteś w stanie dostać się do informacji takich jak rodzaj połączenia , przez jaki się łączysz. Na pewno możesz strzelać do jakiegoś api i jak ci nie odpowie w odpowiednim czasie (dostaniesz timeouta) to pokazać komunikat.

0

Dzięki, a strzelać mam poprzez document.ready czy zwykły script ?

3

Raczej musisz ten skrypt odpalić albo w chwili, w której użytkownik chce coś wykonać (np. przesłać dane formularza na serwer), albo cyklicznie co jakiś czas sprawdzać. Bo document.ready się wykona jeden raz po załadowaniu strony.
A skoro strona się załadowała, to chyba net działa :P

4

A jaki jest use case w tym przypadku? Bo jakoś mi się pomyślało, żeby w samochodach dodawać na desce komunikat "Twój samochód nie porusza się". Więc tutaj na tę chwilę widzę to podobnie i mam kilka pytań

  • czy Twój użytkownik sam nie jest w stanie zobaczyć, że ma słaby internet?
  • jak ten słaby internet może wpłynąć na Twoją appkę?
  • co ma się dziać kiedy użytkownik będzie straci całkowicie internet - mówię tutaj o przeskokach typu "slaby internet->brak internetu" ? Co z sytuacją "Dobry internet -> brak internetu"?
  • co Twoim zdaniem oznacza "brak wystarczającego połączenia" - to zbyt duży ping? utrata pakietów czy może po prostu niska prędkość? Dodam że te 3 rzeczy mogą występować w różnych kombinacjach.
  • czy ten komunikat ma wyskakiwać na długo/krótko? Myślę tu o sytuacjach gdzie internet raz działa dobrze, raz źle i tak co kilka sekund się zmienia sytuacja.
  • jakie parametry internetu to "wystarczające połączenie" ?
  • jeśli użytkownik ściąga coś w tle lub jakkolwiek obciąża swoje łącze - to czy komunikat będzie wtedy poprawny?
3

To czy jest połączenie z internetem jest offline/online możesz sprawdzić za pomocą navigator.online.
Możesz też użyć serviceworkera, który będzie przechwytywał requesty, i w razie czego (kiedy połączenie jest offline) zwracał odpowiednią zawartość (z cache).

A co do jakości połączenia, istnieje coś takiego jak Network Information API. Jeśli tego użyjesz, to zwraca parę rzeczy (rodzaj, prędkość itp.)

const networkInformation = navigator.connection;
console.log(networkInformation)

Jednak to jest dość nowe API, nie wszędzie jest dostępne (działa głównie na mobile)

1 użytkowników online, w tym zalogowanych: 0, gości: 1