Back

Wie man LocalStorage in JavaScript zum Speichern und Abrufen von Daten verwendet

Wie man LocalStorage in JavaScript zum Speichern und Abrufen von Daten verwendet

LocalStorage ermöglicht Entwicklern, Schlüssel-Wert-Daten persistent im Browser eines Benutzers zu speichern. Es ist nützlich für die Speicherung von Benutzereinstellungen, das Caching von API-Antworten und die Aufrechterhaltung des Anwendungszustands über Sitzungen hinweg.

Wichtige Erkenntnisse

  • LocalStorage ist ein einfaches Schlüssel-Wert-Speichersystem, das Daten über Seitenneuladen und Browser-Neustarts hinweg beibehält.
  • Es sollte aufgrund von Sicherheitsbedenken nicht für sensible Daten verwendet werden.
  • Nützlich für die Speicherung von Benutzereinstellungen und leichtgewichtiges Caching von API-Antworten.
  • Alternative Optionen sind SessionStorage (temporär) und IndexedDB (für komplexe oder umfangreiche Datenspeicherung).

LocalStorage verstehen

LocalStorage ist Teil der Web Storage API und bietet Methoden zum Speichern, Abrufen und Entfernen von Daten:

localStorage.setItem('theme', 'dark'); // Store data
const theme = localStorage.getItem('theme'); // Retrieve data
localStorage.removeItem('theme'); // Remove a specific item
localStorage.clear(); // Clear all stored data

LocalStorage behält Daten bei, bis sie explizit entfernt werden. Daten werden als Zeichenketten gespeichert, daher sollten für Objekte oder Arrays JSON.stringify() und JSON.parse() verwendet werden:

const settings = { theme: 'dark', fontSize: 16 };
localStorage.setItem('settings', JSON.stringify(settings));
const savedSettings = JSON.parse(localStorage.getItem('settings'));
console.log(savedSettings.theme); // ""dark""

Anwendungsfall 1: Speichern von Benutzereinstellungen

LocalStorage wird häufig zum Speichern von UI-Einstellungen wie Thema-Präferenzen verwendet.

// Saving theme preference
localStorage.setItem('theme', 'dark');

// Applying stored preference on page load
const savedTheme = localStorage.getItem('theme');
if (savedTheme) applyTheme(savedTheme);

Anwendungsfall 2: Caching von API-Antworten

Das Caching von API-Antworten reduziert unnötige Netzwerkanfragen und verbessert die Leistung.

const cacheKey = 'apiData';
const maxAge = 60 * 60 * 1000; // 1 hour

const cached = localStorage.getItem(cacheKey);
if (cached) {
    const { data, timestamp } = JSON.parse(cached);
    if (Date.now() - timestamp < maxAge) {
        renderData(data);
    } else {
        localStorage.removeItem(cacheKey);
    }
}

if (!localStorage.getItem(cacheKey)) {
    fetch('/api/data')
        .then(response => response.json())
        .then(data => {
            renderData(data);
            localStorage.setItem(cacheKey, JSON.stringify({ data, timestamp: Date.now() }));
        });
}

LocalStorage vs. andere Web-Speicheroptionen

  • SessionStorage: Gleiche API wie LocalStorage, aber Daten werden gelöscht, wenn der Tab geschlossen wird.
  • IndexedDB: Unterstützt umfangreiche Datenspeicherung mit strukturierten Abfragen, ist jedoch komplexer.
  • Cookies: Werden für serverseitige Speicherung verwendet und automatisch mit HTTP-Anfragen gesendet.

Einschränkungen und Best Practices

  • Sicherheitsrisiken: Daten sind über JavaScript zugänglich; speichern Sie keine sensiblen Informationen.
  • Speicherlimits: Etwa 5 MB pro Ursprung; das Überschreiten wirft einen QuotaExceededError.
  • Synchroner Zugriff: Große Lese-/Schreibvorgänge können den Hauptthread blockieren.
  • Keine automatische Ablaufzeit: Implementieren Sie bei Bedarf manuell eine Ablauflogik.
  • Namensräume verwenden: Präfixieren Sie Schlüssel, um Konflikte zu vermeiden (MyApp_theme statt theme).

Fazit

LocalStorage ist ein leistungsstarkes, aber einfaches Werkzeug zum Speichern kleiner Mengen clientseitiger Daten. Es eignet sich am besten zum Speichern von Benutzereinstellungen und zum Caching leichtgewichtiger API-Antworten. Entwickler müssen jedoch die Sicherheitseinschränkungen beachten und eine ordnungsgemäße Datenverarbeitung sicherstellen, um Leistungsprobleme zu vermeiden.

Häufig gestellte Fragen

Nein, LocalStorage-Daten bleiben unbegrenzt bestehen, sofern sie nicht manuell gelöscht werden.

Typischerweise etwa 5 MB pro Ursprung, abhängig vom Browser.

Nein, auf LocalStorage kann über JavaScript zugegriffen werden und sollte nicht für sensible Daten verwendet werden.

LocalStorage behält Daten über Sitzungen hinweg bei, während SessionStorage Daten löscht, wenn der Tab geschlossen wird.

Verwenden Sie LocalStorage für kleine Schlüssel-Wert-Paare; IndexedDB ist besser für komplexe oder umfangreiche Speicherung geeignet.

Listen to your bugs 🧘, with OpenReplay

See how users use your app and resolve issues fast.
Loved by thousands of developers