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
42
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
Honoが叶える!いつでも降りられるLambdalith
kakehashi
PRO
1
150
分析の民主化を支えるメタデータ整備の実践
kakehashi
PRO
4
1.2k
薬剤師(ドメインエキスパート)と一緒に育てる薬局向けAIアシスタント
kakehashi
PRO
2
240
デザイナーとPdMが自分でデプロイする ― Amplify Hosting の PR プレビューで回す仮説検証
kakehashi
PRO
2
210
人を動かすのは時間ではなく、納得感 〜新任EMが入社3ヶ月、組織を2回変えた話〜
kakehashi
PRO
3
660
クラウド上のデータ復旧で見落としがちな制約: 医療系 SaaS の BCP 設計から得た教訓
kakehashi
PRO
0
5.6k
プロダクトだけじゃない、社内プロセスにおける自動化・省力化ノススメ
kakehashi
PRO
1
5.9k
「軸足」は 固定しなくていい - 熱量と強みで描く、しなやかなキャリアの形
kakehashi
PRO
2
720
Sync と Async ─ useSyncExternalStore を使う者の岐路
kakehashi
PRO
1
900
Other Decks in Technology
See All in Technology
自律型 AI をセキュアに実装!Gemini と MIG で作る動的コード実行環境
recruitengineers
PRO
1
230
Execution in the Kingdom of Agents: Reflections on Abstraction and Complexity
bcantrill
0
890
More Freedom on the Same Shared GPU Cluster: A Small Team’s Experience with vCluster
nttcom
0
140
Deep Data Security 機能解説
oracle4engineer
PRO
2
740
UniFi(ユニファイ)AIカメラの現場活用
ludicmind
1
380
DWH の限界突破! AI エージェント向け爆速リアルタイムデータ基盤 ClickHouse
jozono
1
320
Lambda MicroVMsが分からなすぎたので使い所を1から考えてみた
tsukuboshi
2
450
パッチ更新でterraform initが落ちた日
grimoh
1
100
AIがコードを書く時代に、エンジニアは何で自分の価値を証明するのか / In an era where AI writes code how do engineers prove their value
carta_engineering
1
660
「Docker Desktop不要の時代」は 来たのか?
ueponx
0
330
AI時代だからこそ推したい!Gitコマンド再入門
munakata
0
160
自作バイナリを動かす「入口」8選
puhitaku
1
1.2k
Featured
See All Featured
SEO for Brand Visibility & Recognition
aleyda
0
4.8k
How to Create Impact in a Changing Tech Landscape [PerfNow 2023]
tammyeverts
56
3.5k
Easily Structure & Communicate Ideas using Wireframe
afnizarnur
194
17k
From Legacy to Launchpad: Building Startup-Ready Communities
dugsong
0
350
Beyond borders and beyond the search box: How to win the global "messy middle" with AI-driven SEO
davidcarrasco
3
280
ラッコキーワード サービス紹介資料
rakko
1
5.2M
16th Malabo Montpellier Forum Presentation
akademiya2063
PRO
0
400
The Illustrated Guide to Node.js - THAT Conference 2024
reverentgeek
1
560
How to Build an AI Search Optimization Roadmap - Criteria and Steps to Take #SEOIRL
aleyda
1
2.2k
Between Models and Reality
mayunak
4
490
The browser strikes back
jonoalderson
0
1.8k
Dealing with People You Can't Stand - Big Design 2015
cassininazir
367
27k
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.