Rowdy Rabouw

Offline first!

What if your web app worked perfectly, even without an internet connection? Learn to build truly offline-first experiences using Service Workers.

Offline first!
#1about 6 minutes

Understanding the role and lifecycle of service workers

Service workers are event-driven JavaScript files that run in the background, acting as a proxy between the browser and the network.

#2about 3 minutes

Caching static assets using the install event

Use the service worker's install event to open a versioned static cache and pre-populate it with core assets like CSS, fonts, and images.

#3about 3 minutes

Intercepting requests to serve files from the cache

The fetch event allows the service worker to intercept network requests and respond with assets directly from the cache for improved performance.

#4about 2 minutes

Implementing a custom offline fallback page

When a network request fails for an HTML document, catch the error and serve a pre-cached offline HTML page for a better user experience.

#5about 2 minutes

Dynamically caching pages as the user navigates

As the user visits new pages, intercept the successful network response and store a clone in a separate dynamic cache for future offline access.

#6about 2 minutes

Managing and cleaning up outdated cache versions

Use the activate event to iterate through existing cache keys and delete any that do not match the current version string, preventing stale content.

#7about 7 minutes

Prefetching content using the Intersection Observer API

Instead of prefetching all links, use the Intersection Observer API to only fetch and cache pages when their corresponding links enter the viewport.

#8about 1 minute

Adapting prefetching based on network conditions

Check the user's network connection type and save data preference to conditionally disable prefetching on slow or metered connections.

#9about 5 minutes

Creating a dynamic list of available offline pages

Enhance the offline fallback page by dynamically generating a list of links to all content that has been successfully stored in the cache.

#10about 4 minutes

Q&A on cache strategies and dynamic content

Answering audience questions about cache invalidation strategies, handling API calls with IndexDB, and the sustainability of caching.

Related jobs
Jobs that call for the skills explored in this talk.

Featured Partners

Related Articles

View all articles
DC
Daniel Cranney
Dev Digest 192: Undead Web, Chart Performance, Free Wifi!
Inside last week’s Dev Digest 192 . 🕸️ The web is dead - again 💻 AI browsers are anti web and a security nightmare 🛰️ Satellites send unencrypted data ⚒️ Building the same app 10 times to compare performance 🕵️ Social media hunting tools 🖥️ One deve...
Dev Digest 192: Undead Web, Chart Performance, Free Wifi!
DC
Daniel Cranney
Dev Digest 181: America Offline! Pay to code? And bad AI hackers…
Inside last week’s Dev Digest 181 . ☎️ AOL shuts down dial-up internet 🔥 Bot-only social media platform immediately goes to war 🤑 Is the future pay to code? ⚠️ Path traversal vulnerability in Microsoft’s agentic web 🤷 Why is XSS still a thing? 🟪 The...
Dev Digest 181: America Offline! Pay to code? And bad AI hackers…

From learning to earning

Jobs that call for the skills explored in this talk.

Web Developer

Web Developer

Front Row London Ltd
Charing Cross, United Kingdom

£25-43K
PHP
API
CSS
GIT
+9
Frontend Web Developer

Frontend Web Developer

Walker and Sloan Ltd
Basildon, United Kingdom

£35-45K
CSS
MySQL
WordPress
JavaScript
Backend Engineer

Backend Engineer

Online Consulting
Wil, Switzerland

26-34K
API
Docker
Microservices