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
オフラインWebアプリの仕組み
Search
Yosuke Onoue
April 14, 2018
Technology
710
1
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
オフラインWebアプリの仕組み
Ionic Meetup Nagoya #1のLT発表資料です。
Yosuke Onoue
April 14, 2018
More Decks by Yosuke Onoue
See All by Yosuke Onoue
ネットワーク可視化の世界
likr
8
7k
Think About Front-end Web Development with Rust
likr
2
590
Yewにおけるoff-the-main-thread
likr
1
850
行政事業レビューデータの可視化 / Visualization of Japan's National Budget with JUDGIT!
likr
1
270
モダンJavaScript再入門 / Re-introduction to Modern JavaScript
likr
24
12k
Web-based Data Visualization with Rust and WebAssembly
likr
4
6.2k
Introduction to Graph Drawing
likr
0
550
20190707Ionic_Meetup.pdf
likr
0
500
About the end of the web
likr
2
570
Other Decks in Technology
See All in Technology
攻撃者がいなくてもAIエージェントはインシデントを起こす
nomizone
0
210
インフラ寄りSREでも 開発に踏み出せる〜境界を越えてユーザー体験に向き合いたい〜
sansantech
PRO
2
3.1k
次世代ランサムウェア対策の考察 / 20260704 Mitsutoshi Matsuo
shift_evolve
PRO
5
1.7k
ループエンジニアリングでE2Eテストを実践
noriyukitakei
0
320
美しいコードを書くためにF#を学んでみた話
yud0uhu
1
380
オブザーバビリティ、本当に活用できてる? 〜API連携×生成AIで成熟度を自動評価〜
dmmsre
1
2.5k
ゼロをイチにする仕事が終わったあと
smasato
0
320
デジタル・デザイン:次の50年を描く「進化する青写真」
y150saya
0
840
「ちゃんとやっている」は独りよがりだった ― 不安に寄り添うインシデント対応へ / Towards incident response that addresses anxieties
chmikata
1
4.2k
AWS Blocks を触ってみた/first-tach-aws-blocks
fossamagna
2
150
グローバルチームと挑むプロダクト開発
sansantech
PRO
1
170
Control Planeで育てるBtoB SaaSの認証基盤 - SRE NEXT 2026
pokohide
1
1.9k
Featured
See All Featured
[RailsConf 2023] Rails as a piece of cake
palkan
59
6.7k
Building Flexible Design Systems
yeseniaperezcruz
330
40k
Organizational Design Perspectives: An Ontology of Organizational Design Elements
kimpetersen
PRO
1
760
The Invisible Side of Design
smashingmag
301
52k
How Fast Is Fast Enough? [PerfNow 2025]
tammyeverts
3
650
Rebuilding a faster, lazier Slack
samanthasiow
85
9.6k
Applied NLP in the Age of Generative AI
inesmontani
PRO
4
2.4k
We Are The Robots
honzajavorek
0
270
Color Theory Basics | Prateek | Gurzu
gurzu
0
380
What’s in a name? Adding method to the madness
productmarketing
PRO
24
4.1k
How to train your dragon (web standard)
notwaldorf
97
6.7k
Tell your own story through comics
letsgokoyo
1
990
Transcript
ΦϑϥΠϯ8FCΞϓϦͷΈ ͓ͷ͏͑ *POJD.FFUVQ/BHPZB ݄ ͜ͷεϥΠυͷ63- IUUQCJUMZ*4Z1
ࣗݾհ w ඌ্༸հ :PTVLF0OPVF w ຊେֶจཧֶ෦ใՊֶՊॿڭ w ՄࢹԽɺ࠷దԽɺΞϧΰϦζϜͷݚڀ w
*POJDΞϯν w ϚΠϒʔϜ w -JHIUIPVTFͰຬΛࢦ͢
8FCαΠτ ωοτ͕ͳͯ͘ ݟΕΔ࣌
ΦϑϥΠϯ8FCΞϓϦ w ωοτ͕͍ɺෆ௨ͳॴͰ͑Δ8FCΞϓϦ w Լɺτϯωϧͷதɺաૄɺൃల్্ࠃɺӉɺʜ w 1SPHSFTTJWF8FC"QQT 18" ͷཁ݅ͷҰͭ w
18"$IFDLMJTU IUUQTEFWFMPQFSTHPPHMFDPNXFCQSPHSFTTJWFXFCBQQTDIFDLMJTU w -JHIUIPVTF IUUQTDISPNFHPPHMFDPNXFCTUPSFEFUBJMMJHIUIPVTFCMJQNEDPOMLQJOFGFIONKBNNGKQNQCKL w ࡞ͬͨ w IUUQTFHSJEKQ
ΦϑϥΠϯ8FCΞϓϦΛࢧ͑Δٕज़ w ϒϥβετϨʔδ w 8FC4UPSBHF TFTTJPO4UPSBHFMPDBM4UPSBHF w *OEFYFE%# w
ΦϑϥΠϯΩϟογϡ w 4FSWJDF8PSLFS $BDIF"1* w ͦͷଞ w /BWJHBUPS0O-JOF w #BDLHSPVOE4ZOD
ΦϑϥΠϯ8FCΞϓϦΛࢧ͑Δٕज़ w ϒϥβετϨʔδ w 8FC4UPSBHF TFTTJPO4UPSBHFMPDBM4UPSBHF w *OEFYFE%# w
ΦϑϥΠϯΩϟογϡ w 4FSWJDF8PSLFS $BDIF"1* w ͦͷଞ w /BWJHBUPS0O-JOF w #BDLHSPVOE4ZOD
"QQ4IFMMΞʔΩςΫνϟͷస 8FCϖʔδ )5.-$44+4 αʔόʔαΠυ ΫϥΠΞϯταΠυ %# ίϯςϯπ )5.-$44+4 Ωϟογϡ ैདྷͷ8FCΞϓϦ
"QQ4IFMM 5FNQMBUF 8FCϖʔδ Precache Runtime Cache
4FSWJDF8PSLFS w ωοτϫʔΫϦΫΤετͷϑοΫॲཧ w ΦϑϥΠϯΩϟογϡ w 1SFDBDIF3VOUJNF$BDIF w ϓογϡ௨ w
#BDLHSPVOE4ZOD w ʜ
4FSWJDF8PSLFSʹΑΔΩϟογϡ ίϯςϯπ )5.-$44+4 Ωϟογϡ 8FCϖʔδ Precache Runtime Cache Ωϟογϡ w
1SFDBDIF w 8FCΞϓϦʹඞཁͳϑΝΠϧΛ 4FSWJDF8PSLFSొ࣌ʹΩϟογϡ w 3VOUJNF$BDIF w ίϯςϯπɺը૾ΛඞཁʹԠͯ͡Ωϟογϡ
4FSWJDF8PSLFSΛॻ͘ w ੜ w :PVS'JSTU1SPHSFTTJWF8FC"QQ IUUQTEFWFMPQFSTHPPHMFDPNXFCGVOEBNFOUBMTDPEFMBCTZPVSpSTUQXBQQ w TXQSFBDBDIFTXUPPMT w
8FCΞϓϦͷΦϑϥΠϯԽʹඞཁͳॲཧͷఏڙ w 8PSLCPY w TXQSFDBDIFTXUPPMTΛΑΓ͍͘͢ߴػೳʹ
8PSLCPY IUUQTEFWFMPQFSTHPPHMFDPNXFCUPPMTXPSLCPY
4FSWJDF8PSLFSͷੜ w XPSLCPYDMJ w XPSLCPYίϚϯυ w XPSLCPYCVJME w /PEFKTHVMQ͔Βར༻ w
XPSLCPYXFCQBDLQMVHJO w XFCQBDLϓϥάΠϯ w XBUDIɺ8FCQBDL%FW4FSWFSରԠ
4FSWJDF8PSLFSͷੜ w XPSLCPYDMJ w XPSLCPYίϚϯυ w XPSLCPYCVJME w /PEFKTHVMQ͔Βར༻ w
XPSLCPYXFCQBDLQMVHJO w XFCQBDLϓϥάΠϯ w XBUDIɺ8FCQBDL%FW4FSWFSରԠ
XPSLCPYXFCQBDLQMVHJO const WorkboxPlugin = require('workbox-webpack-plugin') module.exports = { plugins: [
new WorkboxPlugin.GenerateSW({ swDest: 'sw.js', globDirectory: './public', globPatterns: [ '*.{html,css,js}' ], globIgnores: [ '_redirects', 'bundle.js', 'sw.js' ], navigateFallback: '/index.html' }) ] }
4FSWJDF8PSLFSͷొ if ('serviceWorker' in navigator) { navigator.serviceWorker.register('/sw.js') .then((registration) => {
}).catch(() => { }) }
·ͱΊ w 8FCΞϓϦΦϑϥΠϯͰಈ࣌͘ w ͜Ε·Ͱͷ8FCͷৗࣝɺΞϓϦͷৗࣝΛݟͦ͏ w *POJD͚͕ͩ18"ͷબࢶͰͳ͍ w 8PSLCPY͍͍ͧ