Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
PWA から始める Service Worker
Search
ohakutsu
June 30, 2021
Technology
1
82
PWA から始める Service Worker
Qiita Night〜記事投稿イベントお疲れ様会〜(
https://increments.connpass.com/event/216557/
)でお話した内容です。
ohakutsu
June 30, 2021
Tweet
Share
More Decks by ohakutsu
See All by ohakutsu
エンジニアもUIを作るならユーザーについて知ろう!
ohakutsu
1
350
Web App Manifest をフル活用してみる
ohakutsu
0
150
Other Decks in Technology
See All in Technology
「ストレッチゾーンに挑戦し続ける」ことって難しくないですか? メンバーの持続的成長を支えるEMの環境設計
sansantech
PRO
3
500
Exadata Database Service on Dedicated Infrastructure(ExaDB-D) UI スクリーン・キャプチャ集
oracle4engineer
PRO
8
7.1k
Datadog の RBAC のすべて
nulabinc
PRO
3
410
製造業ドメインにおける LLMプロダクト構築: 複雑な文脈へのアプローチ
caddi_eng
1
540
マルチアカウント環境でSecurity Hubの運用!導入の苦労とポイント / JAWS DAYS 2026
genda
0
270
DevOpsエージェントで実現する!! AWS Well-Architected(W-A) を実現するシステム設計 / 20260307 Masaki Okuda
shift_evolve
PRO
3
420
トップマネジメントとコンピテンシーから考えるエンジニアリングマネジメント
zigorou
4
800
フルカイテン株式会社 エンジニア向け採用資料
fullkaiten
0
11k
オレ達はAWS管理をやりたいんじゃない!開発の生産性を爆アゲしたいんだ!!
wkm2
4
460
元エンジニアPdM、IDEが恋しすぎてCursorに全業務を集約したら、スライド作成まで爆速になった話
doiko123
1
530
AIファーストを前提とした開発スタイルの変化
sbtechnight
0
250
us-east-1 に障害が起きた時に、 ap-northeast-1 にどんな影響があるか 説明できるようになろう!
miu_crescent
PRO
13
4.1k
Featured
See All Featured
The Illustrated Children's Guide to Kubernetes
chrisshort
51
52k
Chasing Engaging Ingredients in Design
codingconduct
0
140
The Hidden Cost of Media on the Web [PixelPalooza 2025]
tammyeverts
2
240
Save Time (by Creating Custom Rails Generators)
garrettdimon
PRO
32
2.4k
End of SEO as We Know It (SMX Advanced Version)
ipullrank
3
4.1k
Practical Tips for Bootstrapping Information Extraction Pipelines
honnibal
25
1.8k
For a Future-Friendly Web
brad_frost
183
10k
Learning to Love Humans: Emotional Interface Design
aarron
275
41k
Ruling the World: When Life Gets Gamed
codingconduct
0
170
The Art of Programming - Codeland 2020
erikaheidi
57
14k
Into the Great Unknown - MozCon
thekraken
40
2.3k
Building Adaptive Systems
keathley
44
2.9k
Transcript
PWA から始める Service Worker 1 @ohakutsu
自己紹介 花田拓矢(はなだたくや) ohakutsu / おはくつ 青森県出身 新卒2年目のエンジニア Qiita の開発をしてます 駆け出しキャンパー⛺
2
Qiita Night 〜記事投稿イベントお疲れ様会〜 3 ということで...
Qiita の記事投稿イベント「フロントエンド強化月間」で投稿した記事 4
Service Worker のキャッシュ戦略 ってなんやねん 5
PWA についてサックリ知る Service Worker のスゴさを知ってもらう 6
7
8 Service Worker との 関連性が高い
PWA とは 9 Webアプリを ネイティブアプリのように 使える!
PWA の特徴 10 Installable Capable Reliable
PWA の特徴 11 Installable Capable Reliable ネイティブアプリの ような機能
PWA の特徴 12 Installable Capable Reliable ネイティブアプリの ような機能 オフラインでも 使える
PWA の特徴 13 Installable Capable Reliable ネイティブアプリの ような機能 インストールできる オフラインでも
使える
PWA の特徴 14 Installable Capable Reliable ネイティブアプリの ような機能 インストールできる オフラインでも
使える Web App Manifest + Service Worker をもとに 実現 されている
Web App Manifest Web アプリをネイティブアプリのように 見せるために必要な情報を定義するもの → manifest.json • アプリ名
• アイコン • アプリ起動時の画面 などを設定できる 15
Service Worker Web ページとは別にバックグラウンドで動作する JavaScript また、ネットワークリクエストに介入でき、制御できる しかも Service Worker 内で
Cache API を呼び出せる 16 Web ページ Service Worker ネットワーク
Service Worker + Cache API PWA のオフラインサポート 17
Service Worker でのオフラインサポート 必要なリソースを事前にキャッシュしておき、 リソースへのリクエスト時にキャッシュから配信することで実現 18
Service Worker でのオフラインサポート 2 リソースを随時キャッシュしておき、オフライン時にキャッシュから配信 19
これをうまく使うことで キャッシュ戦略 ができる 20
Service Worker でのキャッシュ戦略 # Precache 必要となるリソースを事前にキャッシュする → ページに必要な JS ファイルや
CSS 、フォントなどの事前に必要とわかっているもの # Runtime Cache リソースを随時キャッシュする → 画像、 API レスポンスなど動的に変わるもの 21
Runtime Cache いくつかの戦略がある • Network First • Cache First •
Stale While Revalidate • Cache then Network • Cache and Network race など... 22
Network First リソースを随時キャッシュしておき、オフライン時にキャッシュから配信 23
Cache First はじめにキャッシュ、キャッシュがない場合ネットワークから配信・キャッシュ 24
Stale While Revalidate キャッシュから配信、裏側でネットワークにアクセスしキャッシュを更新 25
他に... Cache then Network Cache and Network race 26
ただ、複雑になるとコードも複雑になってしまう... 27
コードを比較 Network First Stale While Revalidate 28
29
Workbox Service Worker,Cache API を使ったキャッシングを 記述・管理するためのライブラリ 30 たった これだけ
よく使うものはレシピとして用意されている • googleFontsCache • imageCache • offlineFallback など... Workbox Recipes
31 これだけで 画像のキャッシュが できる
もっと知りたい! # PWA • Progressive Web Apps | web.dev #
Service Worker • Service Worker の紹介 | Web Fundamentals | Google Developers • Service worker の使用 - Web API | MDN • The Offline Cookbook | web.dev # Workbox • Workbox | Google Developers 32
さいごに • Service Worker でのキャッシュ戦略は非常に強力 • それが故にキャッシュでの事故を起こす可能性もあり • Workbox を使って楽にキャッシュ戦略をしよう
33
ありがとうございました 34