generated at
Offline mode

WiFi切っても
画面遷移できる
リロードできる
実装
GET API向けのHTTP Requestを全てServiceWorkerでハンドルして
responseを全てCacheStorageに入れておき
NetworkFirstで扱うと、オフライン表示が可能になる
networkに対してrequestし、失敗すればcache
まだ、POSTしただけで再GETしていない物は、POST前の値がcacheに入ってしまっている

解説

daiizが中心となって推進して実装された機能
shokaiはなんか細かい矛盾を解決するのをがんばった
単純にUI側にもう1つ offline mode というstateが増えるので
使えなくなる機能、切り替わる機能がある
今後またそれらが替わる構想もある
どの時点からoffline modeであると見なすかも難しい
networkは接続があるようで、無い場合が多い
navigator.onLine === false は信用できる
navigator.onLine === true は信用できない
経路上の不具合、ログイン必要なWiFiにログインしてない等
なんかこう、下手すると今後の機能追加の足かせになりそうな地雷が多い
ServiceWorkerがするべき動作は、本当にそのアプリケーションの性質によって違う
UI上に「今オフラインモードです」と表示してユーザーに意識させるべきかどうか?とかそういう次元から違う
なのでWorkbox使えば作れるという単純な話ではない