7. ServiceWorkerとは ①
Service Worker の紹介
Service Worker はブラウザが Web ページとは別にバックグラウンドで実行するスクリプトで、Web ペ
ージやユーザのインタラクションを必要としない機能を Web にもたらします。すでに現在、プッシュ通
知やバックグラウンド同期が提供されています。さらに将来は定期的な同期、ジオフェンシングなども
導入されるでしょう。このチュートリアルで説明する機能は、ネットワークリクエストへの介入や処理
機能と、レスポンスをプログラムから操作できるキャッシュ機能です。
8. ServiceWorkerとは ②
続き
● Service Worker は JavaScript Worker のひとつです。ですので DOM に直接アクセスできません。
Service Worker がコントロールするページとの通信は postMessage インターフェースから送られ
るメッセージに返信することで行えます。DOM を操作したい場合は、コントロールするページ経
由で行えます。
● Service Worker はプログラム可能なネットワークプロキシです。ページからのネットワークリクエ
ストをコントロールできます。
● Service Worker は使用されていない間は終了され、必要な時になったら起動します。ですので
onfetch、onmessage ハンドラ内でグローバルに設定したステートに依存できません。持続的で再
利用可能な情報を Service Worker のライフサイクル間で共有したい場合は、IndexedDB API API
にアクセスしなければいけません。
● Service Worker は JavaScript の Promises を多用します。Promises についてよく知らない方はこ
の記事を読むのをいったん止めて、Jake Archibaldの記事を読みましょう。