Glossary

Service Worker

A Service Worker is a JavaScript file that runs in a background browser thread, independently of the page. It intercepts network requests, caches resources, and enables offline operation. The technical foundation of PWAs.

How it is registered

// Registration
if ('serviceWorker' in navigator) {
  navigator.serviceWorker.register('/sw.js');
}

// sw.js — the Service Worker file
self.addEventListener('install', event => {
  event.waitUntil(
    caches.open('v1').then(cache =>
      cache.addAll(['/index.html', '/app.css', '/app.js'])
    )
  );
});

self.addEventListener('fetch', event => {
  event.respondWith(
    caches.match(event.request).then(cached =>
      cached ?? fetch(event.request)
    )
  );
});

Caching strategies

Limitations

HTTPS only. No direct DOM access. Its own lifecycle (install → activate → fetch).