Formularz offline
Najpierw odpowiedz na głos lub w myślach, potem porównaj.
Odpowiedź
Zapisuję szkic lokalnie, np. w IndexedDB, i pokazuję użytkownikowi jednoznaczny stan: „zapisano na urządzeniu, oczekuje na wysłanie”. Service worker może udostępnić zapisane zasoby aplikacji bez sieci.
Po odzyskaniu połączenia próbuję wysłać formularz. W razie błędu zachowuję szkic i oferuję ponowienie. Background Sync może pomóc, ale nie jest dostępne wszędzie.
Praktycznie: identyfikator operacji i idempotencja po stronie serwera chronią przed podwójnym zapisem. Uwzględniam wygasłą sesję i konflikty danych.
Pułapka: offline nie da się naprawdę dostarczyć danych do niedostępnego serwera. navigator.onLine jest wskazówką, a nie dowodem, że konkretne API odpowiada.
Jak poszło? Bądź szczery — „Jeszcze nie” dodaje pytanie do powtórki.