Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Sign up for free
Menu
Search
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Pricing
Search
Sign in
Sign up for free
SharedWorkerを使ったキャッシュでネイティブアプリに負けないユーザー体験を目指す
Search
KAKEHASHI
PRO
October 12, 2026
Technology
610
1
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
SharedWorkerを使ったキャッシュでネイティブアプリに負けないユーザー体験を目指す
フロントエンドカンファレンス関西2026
https://2026.frontend-conf.osaka.jp/
での登壇資料です
KAKEHASHI
PRO
October 12, 2026
More Decks by KAKEHASHI
See All by KAKEHASHI
生成AI時代、PMは事業責任者に進化するともっと面白い〜PMだからこそ事業構造を動かせる時代に〜
kakehashi
PRO
1
1k
Honoが叶える!いつでも降りられるLambdalith
kakehashi
PRO
2
280
分析の民主化を支えるメタデータ整備の実践
kakehashi
PRO
4
1.7k
薬剤師(ドメインエキスパート)と一緒に育てる薬局向けAIアシスタント
kakehashi
PRO
2
300
デザイナーとPdMが自分でデプロイする ― Amplify Hosting の PR プレビューで回す仮説検証
kakehashi
PRO
2
250
人を動かすのは時間ではなく、納得感 〜新任EMが入社3ヶ月、組織を2回変えた話〜
kakehashi
PRO
3
710
クラウド上のデータ復旧で見落としがちな制約: 医療系 SaaS の BCP 設計から得た教訓
kakehashi
PRO
0
5.9k
プロダクトだけじゃない、社内プロセスにおける自動化・省力化ノススメ
kakehashi
PRO
1
6.1k
「軸足」は 固定しなくていい - 熱量と強みで描く、しなやかなキャリアの形
kakehashi
PRO
2
760
Other Decks in Technology
See All in Technology
バイブコーディングの特徴と「コケて直す」ループ
happysamurai294
0
120
ポケモン対戦を自動で記録して振り返ろう
fufufukakaka
0
420
新卒エンジニア、 介護士になる
ryu1013
1
430
Claude Codeから見る、エンジニアの世界の変容とその先
oikon48
7
4.8k
データマネジメント × 法務で作りあげる、 freeeの新しいデータガバナンスへの軌跡
freee
PRO
2
560
仕様駆動開発の、その先へ。決める力と確かめる仕組み
inariku
1
140
"計画的無茶振り"を通してAIネイティブ世代の新人を育てる
subroh0508
1
130
日本AIベンチャーレポート2026
kentarofujii
0
260
AI時代の開発はウォーターフォールに回帰する? / development-with-ai-back-to-wf
okamototakuyasr2
0
150
LLMの知識とAIエージェント
happysamurai294
0
120
200人の配信コメント、 全部Jevが仕分けます 〜 マサカリガードを作ってみた 〜
katayamatg
1
440
キヨさん67歳 AIコーディングエージェント物語
happysamurai294
0
120
Featured
See All Featured
Designing Experiences People Love
moore
143
24k
Highjacked: Video Game Concept Design
rkendrick25
PRO
1
500
Why Our Code Smells
bkeepers
PRO
340
58k
CoffeeScript is Beautiful & I Never Want to Write Plain JavaScript Again
sstephenson
162
16k
It's Worth the Effort
3n
188
29k
Keith and Marios Guide to Fast Websites
keithpitt
413
23k
Unsuck your backbone
ammeep
672
58k
Typedesign – Prime Four
hannesfritz
42
3.2k
The Illustrated Children's Guide to Kubernetes
chrisshort
51
53k
Templates, Plugins, & Blocks: Oh My! Creating the theme that thinks of everything
marktimemedia
31
2.9k
Breaking role norms: Why Content Design is so much more than writing copy - Taylor Woolridge
uxyall
1
470
技術選定の審美眼(2025年版) / Understanding the Spiral of Technologies 2025 edition
twada
PRO
120
120k
Transcript
SharedWorkerを使ったキャッシュで ネイティブアプリに負けないユーザー体験を目指す 2026/10/12 Nokogiri@株式会社カケハシ フロントエンドカンファレンス関西2026 ©KAKEHASHI inc.
自己紹介 Nokogiri(@nkgrnkgr) X | Bluesky | Github 株式会社カケハシ ソフトウェアエンジニア(主にフロントエンド) React
/ TypeScript / フロントエンド大好き! 二児の父👶 ポケモン対戦大好き! ©KAKEHASHI inc. 2
会社紹介 株式会社カケハシとは • ヘルステックスタートアップ • 主に調剤薬局向けの業務システムを提供 • クラウド型電子薬歴「Musubi」のほか、複数プ ロダクトを開発・提供し、グループ全体で国内の 薬局の14,000店舗超をカバー
©KAKEHASHI inc. 3
同じデータを複数のタブで取り直している ©KAKEHASHI inc. 4
同じデータを複数のタブで取り直している 薬局のユースケース • 1患者毎に1タブ • 最大1日に200-300名、来局 • 医薬品など数万件、数MB程度のデータ • 丸一日ほぼ変更がない場合がある
• 環境によってはネットワークが細い • 移行元がWindowsネイティブアプリ タブを跨いで1回だけ取得し、使い回せないか ©KAKEHASHI inc. 5
複数タブでデータを使い回す ©KAKEHASHI inc. 6
複数タブでデータを使い回す 使う2つの技術 SharedWorker • 同じオリジンの複数タブで共有できる SSE(Server-Sent Events) • Worker •
タブとは別スレッドで動き、全タブが閉じると 終わる ©KAKEHASHI inc. サーバーからブラウザへ一方向にイベントを 流す HTTP の仕組み • 接続を張りっぱなしにして、更新の通知を受 け取る 7
複数タブでデータを使い回す Workerに1カ所で持ち、全タブで使い回す • タブからWorkerへ取得イベントを 投げる ©KAKEHASHI inc. • Worker内で通信し、Mapで管理 •
待つのは初回の1タブ目だけ • 2タブ目以降通信なしで返す 8
複数タブでデータを使い回す 値が変わればサーバーが知らせる、全タブを閉じるとデータが消える • マスタに変更があればSSEでWorker に通知 • Workerは再取得して、全タブに Broadcast • SSE接続もタブ毎ではなくWorker1本
• 全タブ閉じるとWorkerごと消えるので 後始末のコードがいらない ©KAKEHASHI inc. 9
複数タブでデータを使い回す 検討した他の技術 技術 説明 localStorage タブを閉じても残る。ログアウトやセッション切れで 消す責務が増える。容量上限と同期 API の問題も IndexedDB
同じく残る。消す責務が増える。永続は今回要らない WASM + SQLite 参照中心なので仕組みが過剰 ※似た名前のServiceWorkerはfetchを横取りしてオフライン対応する部品で、用途が違う 全タブ閉じると消えるSharedWorkerの寿命はちょうどいい ©KAKEHASHI inc. 10
まとめ ©KAKEHASHI inc. 11
まとめ SharedWorker+SSEでタブ間のデータ共有とライフサイクル管理が可能 • データ取得をSharedWorkerに一本化 • SharedWorkerが全タブにBroadcastして同期 • 更新通知はSSE経由 • 全タブ閉じるとWorkerごとデータも消える
※今回の発表内容は、実プロダクトで運用している内容ではなくPoCとして検証した内容です。 ブラウザに大きなデータを置くときの選択肢として検討いただけると幸いです。 ©KAKEHASHI inc. 12
We Are Hiring!!! PM EM エンジニア積極採用中 © KAKEHASHI Inc. All
Rights Reserved.