Service Worker
通常、WebページにJavaScriptで記述されたスクリプト(簡易なコンピュータプログラム)は、閲覧者がページをブラウザで開いて表示している間だけ実行することができる。
WebブラウザがService WorkerのAPIに対応している場合、ページが開かれた際に閲覧者の許可を得てスクリプトを通常のソフトウェアのように「インストール」することができ、他のページに遷移した後や、ブラウザの再起動を行った後でもスクリプトを実行できるようになる。
これにより、ページ内の資源をブラウザ側にキャッシュしてオフライン状態でも利用できるようにしたり、ページを表示していないときにサイト側と通信してキャッシュを更新したり(バックグラウンド同期)、サイト側から能動的に発信される情報を受け取って閲覧者に知らせる(プッシュ通知)といった機能を実装することができる。
バックグラウンド動作に特化した仕様のためページ上の表示要素の操作(DOM操作)はできず、セキュリティ確保のため任意の接続先にHTTPなどで通信するといった動作も禁じられている。利用するにはサイトが必ずHTTPS(HTTP over SSL/TLS)対応になっている必要がある。
Service Workerの仕様は米グーグル(Google)社が提唱したもので、2014年に同社のGoogle Chromeに実装され利用できるようになった。同社はService Workerを含む様々な機能を組み合わせてWebアプリケーションの機能や操作感を段階的にネイティブアプリケーションに近づけることを「PWA」(Progressive Web Application)と呼んでいる。現在ではChromeだけでなくApple Safari、Mozilla Firefox、Microsoft Edgeなど主要なWebブラウザが対応している。