ついて調べたことをまとめてみました。Webページとは別にバックグラウンドで実行するスクリプト。プッシュ通知、バックグラウンド同期、オフライン機能などが提供されている。オフライン機能では、AppCacheの問題点(複数ページで構成されたサイトでうまく動作しないなど)を改善するように設計されている。Workerの一つのため、DOMに直接アクセスできない。状態は、起動しているか、終了しているかの2つ。使用してデータの保存・読み込みを行う必要がある。Httpsが必須(localhostではhttps://localhostでテストできる)。WorkerのライフサイクルWebページとは異なるライフサイクルで動作する。WorkerのJavascriptを登録する必要がある。インストール処理をバックグラウンドで実行する。インストール時の処理で、必要なファイルをキャッシュする。1ファイルでもダウンロードに失敗、もしくはキャッシュに失敗した場合、インストールは失敗する。Workerが、スコープ内のすべてのページをコントロールできるようになる。登録したページは、この時点ではコントロールできず、次回の読み込みでコントロールできるようになる。不要なキャッシュは、アクティベート処理で削除する。起動か終了の状態になる状態は起動・終了の2つのみ。Workerは起動され処理を行う。終了:メモリ節約のため、イベント処理の実施後は終了します。スコープregisterで登録したJavascriptが保存されている階層以下がスコープになる。(fetchイベントを受け付ける)例)register(/serviceworker.js)ドメインルート以下の全てがスコープになる。以下の全てがスコープになる。テストブラウザのシークレットウインドウで行うのがオススメ。シークレットウィンドは閉じると、登録やキャッシュが全て消去されるため、以前のテストの影響を受けなくすることができる。複数回実行してもブラウザがインストール状態を確認してインストール済みの場合は、再インストールは行われない。インストールのポイントキャッシュさせたいファイルがある場合は、インストールイベントで行う。インストールイベントのコールバックを定義して、キャッシュさせたいファイルを指定します。{});また、コールバック関数では、次のことを行います。必要なファイルをキャッシュする。必要なアセットがすべてキャッシュされたかを確認する。ファイルを更新します。Workerを定義するJSファイルを再ダウンロードしようとする。実際にダウンロードするかの判断は、ブラウザが保持しているJSファイルと、サイトのJSファイルにバイト差異がある場合、新しいものと認識されダウンロードされる。スタートし、インストールイベントが発火する。