localStorage ist ein einfacher, dauerhafter Schlüssel-Wert-Speicher direkt im Browser. Er gehört zur Web Storage API und erlaubt Webseiten, kleine Datenmengen ohne Serverkontakt zu speichern — sie überleben Neustarts, Tab-Schließen und sogar Browser-Updates.

Wie funktioniert localStorage?

Die API ist denkbar einfach: Jede Seite bekommt einen eigenen Speicherbereich pro Origin (Protokoll + Domain + Port). Eine andere Domain kann die Daten nicht lesen. Die Werte bleiben so lange erhalten, bis die Seite sie explizit löscht oder der Nutzer die Browserdaten entfernt.

// Wert speichern
localStorage.setItem('theme', 'dark');

// Wert lesen
const theme = localStorage.getItem('theme');

// Wert löschen
localStorage.removeItem('theme');

// Komplett leeren
localStorage.clear();

Wichtige Eigenschaften

  • Nur Strings: Objekte müssen vor dem Speichern mit JSON.stringify() und JSON.parse() umgewandelt werden.
  • Synchron: Jeder Zugriff blockiert kurz den Haupt-Thread — bei großen Datenmengen spürbar.
  • Größenlimit: Klassisch etwa 5 MB pro Origin (gemeinsame Quote mit sessionStorage); bei Überschreiten wirft der Browser einen QuotaExceededError.
  • Tab-Synchronisation: Ändert ein Tab einen Wert, feuert in den anderen Tabs das storage-Event.

Typische Einsatzfälle

  • Benutzereinstellungen wie Theme oder Sprache
  • Warenkorb-Inhalte im Online-Shop
  • Zuletzt angesehene Artikel
  • Spielstände und Formularentwürfe

Grenzen und Sicherheit

localStorage ist kein sicherer Ort für Passwörter oder Tokens: Jedes eingeschleuste Skript (XSS) kann die Daten lesen. Für sensible Daten eignen sich Cookies mit Secure/HttpOnly-Flag oder serverseitige Speicherung. Auch große Datenmengen gehören nicht hierher — dafür ist IndexedDB die richtige Wahl.

Verwandte Grundlagen: sessionStorage, IndexedDB, Cookie, DOM, PWA, Service Worker.