localStorage a sessionStorage
Poznanie czasu życia i zakresu każdego typu magazynu
localStorage a sessionStorage to bezpłatna lekcja HTML Academy na CoddyKit. To lekcja 1 z 4. Możesz przeczytać całą lekcję poniżej za darmo — a potem ćwiczyć ją interaktywnie w przeglądarce z wbudowanym edytorem kodu i tutorem AI dostępnym 24/7. To część ścieżki edukacyjnej HTML Academy, a Twój postęp synchronizuje się między webem a aplikacją CoddyKit. Kurs HTML Academy zawiera 4 lekcji w sumie.
Przegląd API Web Storage
API Web Storage udostępnia dwa magazyny klucz-wartość po stronie klienta: localStorage (zachowywany między sesjami) i sessionStorage (czyszczony po zamknięciu karty). Oba magazyny przechowują wartości w postaci ciągów znaków i są dostępne synchronicznie za pośrednictwem JavaScriptu w ramach tego samego originu.
Trwałość localStorage
Dane w localStorage pozostają zachowane do momentu jawnego usunięcia ich przez kod, użytkownika lub usunięcia danych przeglądarki. Przetrwają ponowne uruchomienie przeglądarki, odświeżenie strony i zamknięcie karty. Pojemność wynosi zazwyczaj 5–10 MB na origin, zależnie od przeglądarki.
Zakres sessionStorage
sessionStorage jest przypisany do bieżącej karty przeglądarki i sesji. Dane przetrwają odświeżenie strony w tej samej karcie, ale zostaną usunięte po jej zamknięciu. Dwie karty otwarte dla tej samej witryny mają oddzielne, niezależne magazyny sessionStorage — nie współdzielą danych.
Podobieństwo API
Oba magazyny udostępniają ten sam interfejs API: setItem(key, value), getItem(key), removeItem(key), clear() oraz właściwość length. Ten sam kod działa w obu przypadkach — wystarczy zastąpić localStorage przez sessionStorage lub odwrotnie.
Wybór między magazynami
localStorage należy używać do przechowywania: preferencji użytkownika (motywu, języka), buforowanych odpowiedzi API oraz funkcji zapamiętywania zalogowania. sessionStorage należy używać do przechowywania: stanu kroków kreatora lub formularza, tymczasowego koszyka przed dokonaniem zakupu oraz danych, które ze względów prywatności nie powinny być zachowywane między wizytami.
Ograniczenie tego samego originu
Oba magazyny są ściśle przypisane do originu (protokołu + hosta + portu). https://example.com nie może odczytać localStorage ustawionego przez http://example.com. Stanowi to granicę bezpieczeństwa — subdomeny również są oddzielnymi originami, chyba że document.domain zostanie zmodyfikowane (przestarzałe).
Pojemność magazynu
W większości przeglądarek limit dla obu magazynów wynosi około 5 MB na origin. Przekroczenie limitu powoduje zgłoszenie błędu QuotaExceededError. Do przechowywania dużych ilości danych potrzebny jest IndexedDB, który obsługuje gigabajty danych strukturalnych. Web Storage służy do przechowywania małych par klucz-wartość, a nie binarnych obiektów blob ani dużych zbiorów danych.
Charakter synchroniczny
Odczyt i zapis w Web Storage są synchroniczne i blokują wątek główny. W przypadku dużych operacji odczytu lub zapisu może to powodować przycięcia. Do częstych operacji na dużych ilościach danych należy używać IndexedDB. Wartości w Web Storage powinny być małe, a operacje rzadkie, aby uniknąć problemów z wydajnością.
Wzorzec serializacji
Web Storage przechowuje wyłącznie ciągi znaków. Obiekty należy serializować za pomocą JSON.stringify(); deserializować za pomocą JSON.parse(). Należy obsługiwać błędy parsowania: try { return JSON.parse(stored) } catch { return defaultValue }. Uszkodzone wartości lub wartości niebędące poprawnym JSON-em w magazynie powodują błędy parsowania.
Magazyn w trybie prywatnym/incognito
localStorage w trybie prywatnym/incognito jest czyszczony po zamknięciu wszystkich prywatnych okien — działa wtedy podobnie jak sessionStorage. Kod opierający stan uwierzytelniania na localStorage powinien obsługiwać sytuację, w której localStorage zostanie nieoczekiwanie wyczyszczony.
Ograniczenia stron trzecich
Przeglądarki coraz częściej ograniczają dostęp do magazynu stron trzecich. Element iframe pochodzący z third-party.com osadzony na first-party.com nie może uzyskać dostępu do localStorage domeny third-party.com. Safari ITP i Firefox Enhanced Tracking Protection partycjonują magazyn — korzystanie z magazynu przez stronę pierwszoplanową pozostaje bez zmian.
Sprawdzenie wiedzy
Kiedy sessionStorage jest czyszczony?
Podsumowanie
localStorage pozostaje zachowany bezterminowo do momentu wyczyszczenia go programowo lub przez użytkownika, natomiast sessionStorage jest czyszczony po zamknięciu karty. Oba magazyny są synchronicznymi magazynami klucz-wartość przechowującymi ciągi znaków, przypisanymi do originu i mającymi pojemność około 5 MB. localStorage należy stosować do preferencji i trwałego stanu, a sessionStorage do tymczasowego stanu przypisanego do sesji, który nie powinien przetrwać zamknięcia karty.
Często zadawane pytania
Czy lekcja „localStorage a sessionStorage” jest bezpłatna?
Tak — pełny tekst „localStorage a sessionStorage” jest dostępny za darmo tutaj w sieci. Aby ćwiczyć ją interaktywnie (wbudowany edytor kodu i tutor AI dostępny 24/7) i odblokować resztę kursu HTML Academy, przejdź na CoddyKit PRO. Kurs HTML Academy zawiera 4 lekcji w sumie.
Co nauczysz się w „localStorage a sessionStorage”?
Poznanie czasu życia i zakresu każdego typu magazynu Ćwiczysz HTML Academy z praktycznym kodem, który uruchamiasz bezpośrednio w przeglądarce, a tutor AI dostępny 24/7 odpowiada na Twoje pytania podczas pracy nad lekcją.
Czy potrzebuję doświadczenia, aby zacząć HTML Academy?
Nie wymagamy żadnego doświadczenia. HTML Academy w CoddyKit jest strukturyzowany dla początkujących i zaawansowanych użytkowników, więc możesz zacząć tutaj lub od początku i uczyć się w swoim tempie. To lekcja 1 z 4.
Ile czasu zajmuje lekcja „localStorage a sessionStorage”?
Większość lekcji CoddyKit trwa około 5–10 minut. Każda lekcja to mały, interaktywny krok, dzięki czemu robisz systematyczne postępy i zawsze wracasz dokładnie do tego samego miejsca — na webie i w aplikacji.
Czy mogę pisać i uruchamiać kod w tej lekcji HTML Academy?
Tak. Każda lekcja HTML Academy zawiera wbudowany edytor kodu, więc piszesz i uruchamiasz prawdziwy kod bezpośrednio w przeglądarce i od razu otrzymujesz sprzężenie zwrotne od AI — bez konfiguracji na komputerze.
Wszystkie lekcje w tym kursie
- localStorage a sessionStorage
- Pobieranie, ustawianie i usuwanie elementów
- Nasłuchiwanie zdarzeń storage
- Bezpieczeństwo — czego nigdy nie przechowywać w magazynie