pandanoir / gakushu

technical topics that I wanna know
0 stars 0 forks source link

Service worker #27

Open pandanoir opened 3 years ago

pandanoir commented 3 years ago

Web worker の一種。Web worker には他に Shared worker、Audio worker などいろいろある。

ServiceWorker は、複数のウェブアプリケーション間やブラウザ、 (利用可能なら) ネットワークとの間でプロキシサーバーとして動くものです。

(引用: Web Workers API)

イメージだけでいうと、アプリそのものじゃなくて、配信方法の箇所・サーバー寄りの技術みたいな感じがする

pandanoir commented 3 years ago

リッチなオフライン体験、定期的なバックグラウンド同期、プッシュ通知など、これまでネイティブアプリを必要としていた機能が Web にもやってきます。 Service Worker はそれらの機能を提供する基盤技術です。

(引用: Service Worker の紹介)

このページがだいぶまとまっていそう

pandanoir commented 3 years ago

キャッシュを使うべきかどうかはどう判定すればいいんだ?結局302みたいにリクエストしてみて判定するしかなくないか?そうなったらブラウザキャッシュと変わらないじゃん

キャッシュではなく、オフライン用のダウンロードと捉えるべき?

Cache-first Service Worker: how to bypass cache on updated assets?

もし network-first にしたら、ダウンロードに失敗した(=オフライン)のときくらいしかService workerが有効にならない。悩ましいな…

pandanoir commented 3 years ago

https://gist.github.com/JMPerez/8ca8d5ffcc0cc45a8b4e1c279efd8a94

Network-first でオフラインキャッシュを使うやつ?あとで試す

pandanoir commented 3 years ago

Why to use service worker for caching when browser cache handles the caching?

ブラウザキャッシュがあるのに、わざわざservice workerでキャッシュする理由。

まあでもこれくらいっぽい。基本的にはオフラインのためにservice workerを使うで合ってそう。