Angular 7 + PWA + Service Worker - czy jest opcja, aby aplikacja pracowała tak samo offline jak pracuje online

0

Witam.
Z tego co się orientuje to Service Worker pozwala na cache'owanie danych z API, trzeba go tylko odpowiednio skonfigurować. Ja mam kilka pytań, do których nie potrafie znaleźć odpowiedzi, ani przykładów.

Przykład jaki muszę obsłużyć:
Jestem offline, aplikacja ma w cache listę dokumentów. Chce dodać nowy dokument. Kontrahenci z cache, towary z cache, mam dokument gotowy i teraz chce go zapisać do API.

  1. Czy ten dokument pojawi się na liście dokumentów?
  2. Czy ten dokument doda mi się automatycznie do API jak tylko aplikacja będzie online?
  3. Czy jestem w stanie w pełni tak skonfigurować Service Worker, aby użytkownik nie wiedział, że jest offline?
  4. Czy jeśli wyszukiwanie mam po stronie API to będzie to działać offline (w sensie, że nie wczytuje wszystkich rzeczy do klienta, "szukam" w API i wyświetlam tylko te wyniki, które znajdzie)?

Szczerze mówiąc cały ten Service Worker jest mądrym rozwiązaniem. Na pewno szybkim w konfiguracji i prostym, ale logika mi podpowiada, że to nie jest możliwe, aby wszystko było przewidziane tak jak ja sobie wymarzyłem...

0

Pierwszy art jest tak chaotyczny, że nic z tego nie rozumiem. Szczególnie ten filmik na YT. Narobił sobie w projekcie jakiś głupot i pół filmiku naprawia, aby mu PWA działało :D
Oba arty nie mają przykładu z wykorzystanim metody POST w przypadku zapytań do API offline. Wszystko co Service Worker cache'uje jest typu GET.

Aplikacja jest dla przedstawicieli handlowych, którzy odwiedzając klienta (odbiorcę) będą w stanie złożyć zamówienie bezpośrednio do systemu ERP za pomocą tabletu jako PWA. Problem zaczyna się w momencie gdy taki przedstawiciel wejdzie do jakiegoś "bunkru" z "dziurą" technologiczną i straci połączenie z netem. Wydaje mi się, że Service Worker w moim przypadku tego nie ogarnie, albo ogarnie tylko niewielką część. W mojej aplikacji jest dużo zapytań do API i często w taki sposób, że cache'owanie tego nie ma sensu (tak mi się wydaje):

  • cennik zależny od wybranego kontrahenta
  • wyświetlanie listy towarów po wpisaniu szukanej frazy
  • lista dokumentów na podstawie zakresu dat

Muszę mieć w aplikacji wyświetlanie towarów dopiero po wyszukaniu, ponieważ jest ich bardzo dużo i cholernie przymula, to samo z dokumentami.
Jeżeli Service Worker wrzuci do cache dokumenty z zakresu 01.07.2019 - 19.07.2019 będąc online to szukając dokumentów z zakresu 25.06.2019 - 01.07.2019 będąc offline najprawdopodobniej nic nie pokaże. To samo tyczy się szukania towarów. Jeśli wyszukam online "truskawki" to będąc offline nie znajdę "arbuza".

Dobrze myślę, czy już za daleko z logiką pojechałem?

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