MEMO2019-02-02ServiceWorkerメモ使用する場合の前提条件HTTPSもしくはlocalhostServiceWorkerのバージョンアップServiceWorkerとして登録されているファイルに変更があっても、即時適用されるわけではない。ファイル変更を検知すると、installイベントが発火される。install完了し、開かれているページが全て閉じられた後再度訪問した際に新バージョンでのactivateイベントが発火される。一般的にイメージする「オンライン時はサーバーからファイルを取得、オフライン時にはキャッシュされたデータを読む」という挙動をしたい場合は、fetchイベントにて通信状況を判断して挙動を調整する必要がある。通信状況を確認する場合は、navigator.onLineを使用するのが普通みたいだが、ページの初期ロード時のfetchタイミングではネットワークに繋がっている場合でもnavigator.onLineはfalseになっている。初期ロード時の読み込みファイルは全てSWのキャッシュから提供されることになり、ネットワークにつながっているのにサーバーから最新ファイルを取得出来ないという状況になってしまう。これに関しては、対策とかあるはずなので要調査。記事を読んだ感じだと、install/activateはServiceWorkerに登録したファイルの変更を検知した際&変更検知後にページを開き直した際な感じの書き方だった。実際に試すとページを開き直すと毎回install/activateが発生していた。(Chrome71)。