0Pricing
React Academy · Lekcja

sessionStorage, IndexedDB i wybór właściwego API

Proszę porównać opcje przechowywania danych w przeglądarce pod kątem trwałości, pojemności oraz dostępu synchronicznego i asynchronicznego.

sessionStorage, IndexedDB i wybór właściwego API to bezpłatna lekcja React Academy na CoddyKit. To lekcja 4 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 React Academy, a Twój postęp synchronizuje się między webem a aplikacją CoddyKit. Kurs React Academy zawiera 4 lekcji w sumie.

sessionStorage udostępnia ten sam interfejs API

sessionStorage udostępnia dokładnie te same metody co localStorage, ale jego czas życia jest powiązany z kartą. Po zamknięciu karty lub okna dane są automatycznie usuwane.

Jest również odizolowany dla każdej karty, więc dwie karty nie współdzielą danych sessionStorage.

Przypadek użycia: formularz wieloetapowy

sessionStorage świetnie sprawdza się w przypadku kreatora wieloetapowego, gdy postęp ma być zachowany po ponownym załadowaniu strony w ramach bieżącej sesji, ale usunięty po zamknięciu karty.

Użytkownik może odświeżyć stronę w trakcie wypełniania formularza bez utraty danych, a po zakończeniu lub opuszczeniu formularza nic nie pozostaje.

IndexedDB: asynchroniczność i duża pojemność

IndexedDB to asynchroniczna, transakcyjna baza danych wbudowana w przeglądarkę. Może przechowywać znacznie więcej niż limit 5 MB localStorage i obsługuje uporządkowane obiekty, tablice, a nawet dane binarne.

Ponieważ działa asynchronicznie, nie blokuje wątku głównego tak jak localStorage.

Wrapper Promise dla idb-keyval

Surowe API IndexedDB jest rozwlekłe i oparte na zdarzeniach, dlatego biblioteki takie jak idb-keyval opakowują je w proste funkcje oparte na Promise, takie jak get, set i del.

Zapewnia to wygodę korzystania podobną do localStorage, a jednocześnie pojemność IndexedDB i działanie asynchroniczne.

IndexedDB dla dużych obiektów Blob

Ponieważ IndexedDB może przechowywać wartości typu Blob i ArrayBuffer, idealnie nadaje się do buforowania obrazów, dźwięku, pobranych plików lub zasobów dostępnych offline.

Takie dane szybko przekroczyłyby limity localStorage i trzeba byłoby serializować je do ciągów znaków, czego IndexedDB pozwala uniknąć.

Cache API dla odpowiedzi HTTP

Interfejs API Cache, często używany razem z service workerami, przechowuje całe obiekty HTTP Response przypisane do żądań. Został zaprojektowany specjalnie do buforowania odpowiedzi sieciowych w podejściu offline-first.

Należy używać go do dostarczania zasobów i odpowiedzi API bez dostępu do sieci, gdy aplikacja działa offline.

Porównanie trwałości danych

localStorage przechowuje dane bezterminowo, dopóki nie zostaną wyczyszczone, sessionStorage działa tylko przez czas trwania sesji karty, IndexedDB również przechowuje dane bezterminowo, a cookies mają konfigurowalny czas wygaśnięcia określany za pomocą atrybutów.

Dopasowanie wymaganego czasu życia danych do odpowiedniego magazynu pozwala uniknąć niespodzianek związanych z ich znikaniem.

Porównanie pojemności

localStorage i sessionStorage są ograniczone do około 5 MB, cookies do około 4 KB każde, natomiast IndexedDB może wykorzystywać setki megabajtów lub więcej, zależnie od urządzenia i przeglądarki.

W przypadku większych ilości danych IndexedDB jest jedyną praktyczną opcją w przeglądarce.

Synchroniczność a asynchroniczność

localStorage, sessionStorage i cookies działają synchronicznie, blokując główny wątek podczas dostępu. IndexedDB i Cache API działają asynchronicznie i są oparte na Promise.

Asynchroniczny dostęp zapewnia responsywność interfejsu nawet podczas odczytu lub zapisu większych ilości danych.

Wybór w zależności od zastosowania

Należy używać cookies z atrybutem httpOnly do przechowywania tokenów uwierzytelniających, aby skrypty nie mogły ich odczytywać, localStorage do przechowywania niewielkich trwałych preferencji, IndexedDB do dużych plików i złożonych danych offline, a sessionStorage do krótkotrwałych wersji roboczych w obrębie karty.

Mechanizm przechowywania należy dopasować do wrażliwości, rozmiaru i czasu życia danych.

Zebranie wszystkiego w całość

Nie istnieje jeden najlepszy interfejs API do przechowywania danych — każde rozwiązanie stanowi kompromis między pojemnością, trwałością, sposobem synchronizacji i bezpieczeństwem. Znajomość tych różnic pozwala dokonywać świadomego wyboru.

Typowa aplikacja korzysta z kilku rozwiązań: cookies do uwierzytelniania, localStorage do preferencji i IndexedDB do zasobów offline.

Szybkie sprawdzenie

Proszę sprawdzić znajomość zasad wyboru mechanizmu przechowywania danych.

Podsumowanie

Porównano sessionStorage, localStorage, IndexedDB, cookies i Cache API pod względem trwałości, pojemności, sposobu synchronizacji i bezpieczeństwa.

Omówiono wybór w zależności od zastosowania: cookies do uwierzytelniania, localStorage do niewielkich preferencji, IndexedDB do dużych lub złożonych danych oraz sessionStorage do wersji roboczych ograniczonych do jednej karty.

Często zadawane pytania

Czy lekcja „sessionStorage, IndexedDB i wybór właściwego API” jest bezpłatna?

Tak — pełny tekst „sessionStorage, IndexedDB i wybór właściwego API” 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 React Academy, przejdź na CoddyKit PRO. Kurs React Academy zawiera 4 lekcji w sumie.

Co nauczysz się w „sessionStorage, IndexedDB i wybór właściwego API”?

Proszę porównać opcje przechowywania danych w przeglądarce pod kątem trwałości, pojemności oraz dostępu synchronicznego i asynchronicznego. Ćwiczysz React 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ąć React Academy?

Nie wymagamy żadnego doświadczenia. React 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 4 z 4.

Ile czasu zajmuje lekcja „sessionStorage, IndexedDB i wybór właściwego API”?

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 React Academy?

Tak. Każda lekcja React 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

  1. Odczytywanie i zapisywanie w localStorage w React
  2. Synchronizowanie stanu z localStorage
  3. Obsługa zdarzeń pamięci między kartami
  4. sessionStorage, IndexedDB i wybór właściwego API
← Powrót do React Academy