web worker, service worker, worklet
w3schoolsのHTMLチュートリアルを流し読みして、 HTML5 APIについて学んでいたら、web workerというものを知った。
service workerは聞いたことがあったのだけど何が違うのかよくわかっていなかったので、調べた。
ほぼ以下の記事のまとめ。
似たような概念に、web worker、service worker、workletの3つがあるという。
- 共通
- バックグラウンドで別jsのプロセスが動く。
- DOMにはアクセスできない。
- web worker
- どんな用途にも使える。
- 基本的には、重くてUXに支障をきたす処理をオフロードするのに使う(画像処理など)。
- DOMで必要な情報がある場合はpostMessageで渡す。
- service worker
- networkとcacheへのプロキシの役割を持つプロセスとして使う。
- ブラウザからのネットワーク要求を受けてキャッシュからデータを返せるので、webアプリがオフラインでも使えるようにできる。
- worklet
- ブラウザのレンダリングフローの一部をフックするのに使う。