# Service worker

> En service worker är en JavaScript-fil som webbläsaren installerar bredvid en webbplats och kör skilt från sidan, där den kan fånga upp nätverksanrop och…

Source: https://northerngo.com/sv/ordlista/service-worker/
Language: sv
Updated: 2026-08-28

---
**En service worker är en JavaScript-fil som webbläsaren installerar bredvid en webbplats och kör skilt från sidan, där den kan fånga upp nätverksanrop och besvara dem från en lokal cache. Det är den som gör att en webbapp laddar offline, och den börjar gälla först efter ett första besök med uppkoppling.**

### En proxy som bor i webbläsaren

En service worker registreras av sidan och körs sedan i en egen tråd, utan åtkomst till DOM:en. Huvuduppgiften är `fetch`-händelsen: varje anrop sidan gör passerar först genom den, och workern avgör om svaret ska komma från [cachen](/sv/ordlista/offline-first/), från nätet eller från båda.

Det valet är cachestrategin, och det finns bara några få vanliga:

- **Cache först** – servera den sparade kopian direkt och gå till nätet bara om inget finns sparat. Snabbt och offlinesäkert, men kan servera en gammal sida.
- **Nät först** – försök med nätet och fall tillbaka på cachen när det misslyckas. Färskt online, användbart ändå offline.
- **Stale-while-revalidate** – servera den cachade kopian direkt och uppdatera den tyst i bakgrunden. Standardvalet för stilmallar, typsnitt och ikoner.
- **Aldrig cache** – skicka rakt ut på nätet. Rätt svar för allt levande: databasläsningar, skrivningar, inloggning, betalningar.

En publicerad NorthernGo-app serveras en `/sw.js` som följer precis den uppdelningen och medvetet håller varje databas- och inloggningsanrop utanför cachen, så att appen misslyckas ärligt i stället för att visa gammal data.

### Missuppfattningen: den gör ingenting vid första besöket

En service worker kan inte cacha filer den aldrig har sett. Den allra första laddningen måste ske med uppkoppling – det är det anropet som installerar workern och fyller cachen. En användare som öppnar din app första gången i flygplansläge får ingenting, hur bra cachestrategin än är.

Två saker till brukar överraska. En ny service worker installeras men blir liggande i *waiting* tills alla flikar med den gamla har stängts, så en driftsättning når inte nödvändigtvis användarna vid nästa omladdning om inte workern anropar `skipWaiting`. Och en worker styr bara det scope den serverades från: en fil i webbplatsens rot styr hela ursprunget, en fil i en undermapp styr bara den mappen. Två workers kan inte äga samma scope – den som registrerades sist tar över.

---

NorthernGo är en AI-driven plattform för att bygga produktionsklara webbappar utan kod. Lokal AI-generering via WebGPU är obegränsad och gratis, och du äger all genererad källkod. https://northerngo.com/
