Service Workerで、オフラインの時だけキャッシュを使う> 接続判定にNavigator.onLineを使うのはダメなのかしら
https://html.spec.whatwg.org/multipage/system-state.html#navigator.online
PWAだと使えないとかあるんかな。
Navigator.onLine
は知りませんでした。勉強になります。ありがとうございます。
まだNavigator.onLine
を試してないですが、以下の理由でfetch
を使っています。
- サーバー側が落ちているときも、利用者はキャッシュでコンテンツを見られてほしい。
self.addEventListener('fetch', event => {...
はブラウザの通信を置き換える処理のため、return response
で通信結果(fetchの結果)を返さないと、オンラインでもオフラインのような挙動になってしまう(オンラインでも通信ができなくなりコンテンツの取得に失敗する)。self.addEventListener('fetch', event => {...
内でevent.respondWith
を使わなければ通常の通信を行ってくれそう。そのため、この項に関してはNavigator.onLine
を使わない理由としては不適。
オフラインの時だけ
というのは正確ではなかったですね。正確にはサーバーと通信ができないとき
になります。