Czy są nietrwałe i obejmują jedynie bieżące okno, czy są jakieś korzyści (wydajność, dostęp do danych itp.) Przechowywanie sesji nad przechowywaniem lokalnym?
javascript
html
local-storage
session-storage
jpkeisala
źródło
źródło
Odpowiedzi:
localStorage i sessionStorage rozszerzają pamięć . Nie ma między nimi żadnej różnicy, z wyjątkiem zamierzonego „nietrwałości”
sessionStorage
.Oznacza to, że dane przechowywane w są przechowywane
localStorage
do momentu ich jawnego usunięcia . Wprowadzone zmiany są zapisywane i dostępne dla wszystkich bieżących i przyszłych wizyt w witrynie.Dla
sessionStorage
, zmiany są dostępne tylko na karcie. Dokonane zmiany są zapisywane i dostępne dla bieżącej strony na tej karcie, dopóki nie zostanie ona zamknięta. Po zamknięciu zapisane dane są usuwane.źródło
Jedyną różnicą jest to, że localStorage ma inny czas wygaśnięcia,
sessionStorage
będzie dostępny tylko wtedy, gdy okno, które go utworzyło, jest otwarte.localStorage
trwa do momentu jego usunięcia lub usunięcia przez użytkownika.Powiedzmy, że chcesz zapisać nazwy użytkownika i hasła, co chcesz używać
sessionStorage
nalocalStorage
ze względów bezpieczeństwa (np. Inna osoba dostępu do swojego konta w późniejszym czasie).Ale gdybyś chciał zapisać ustawienia użytkownika na swoim komputerze, prawdopodobnie byś tego chciał
localStorage
. W sumie:localStorage
- stosowanie do długotrwałego użytkowania.sessionStorage
- używaj, gdy musisz przechowywać coś, co się zmieni lub tymczasoweźródło
Kilka innych punktów, które mogą pomóc zrozumieć różnice między pamięcią lokalną a sesją
Zarówno pamięć lokalna, jak i sesja mają zasięg dokumentacyjny, dlatego też
https://mydomain.com/
http://mydomain.com/
https://mydomain.com:8080/
Wszystkie powyższe adresy URL nie będą dzielić tego samego miejsca. (Uwaga, ścieżka strony internetowej nie wpływa na pamięć internetową)
Pamięć sesji jest inna nawet dla dokumentu z tą samą zasadą pochodzenia otwartą na różnych kartach, więc ta sama strona internetowa otwarta na dwóch różnych kartach nie może współużytkować tej samej pamięci sesji.
Zarówno pamięć lokalna, jak i pamięć sesji są również określane przez dostawców przeglądarki . Dane pamięci zapisane przez IE nie mogą być odczytane przez Chrome ani FF.
Mam nadzieję że to pomoże.
źródło
Główna różnica między
localStorage
isessionStorage
polega na tym, żesessionStorage
jest unikalna dla każdej karty. Jeśli zamkniesz kartę,sessionStorage
zostanie ona usunięta,localStorage
nie . Nie można także komunikować się między kartami :)Kolejna subtelna różnica polega na tym, że na przykład w Safari (8.0.3)
localStorage
ma limit 2551 tys. Znaków, alesessionStorage
ma nieograniczoną przestrzeń dyskowąChrome (v43) oba
localStorage
isessionStorage
są ograniczone do 5101 znaków (k ma różnicy między normalnym trybie / incognito)Na Firefox zarówno
localStorage
isessionStorage
są ograniczone do 5120 znaków (k żadnej różnicy pomiędzy normalnym / trybie prywatnym)Bez różnicy prędkości :)
Występuje również problem z Mobile Safari i Mobile Chrome, maksymalne miejsce w Safari i Chrome w trybie prywatnym wynosi 0 KB
źródło
sessionStorage
jest taki samlocalStorage
, z wyjątkiem tego, że przechowuje dane tylko dla jednej sesji i zostaną usunięte, gdy użytkownik zamknie okno przeglądarki, które je utworzyło.źródło
jeśli chodzi o wydajność, moje (prymitywne) pomiary nie wykazały różnicy na 1000 zapisów i odczytów
ze względów bezpieczeństwa, intuicyjnie wydaje się, że localStore może zostać zamknięty przed sesją Store, ale nie ma konkretnych dowodów - może robi to ktoś inny?
jeśli chodzi o funkcjonalność, spójrz z digitalFresh powyżej
źródło
Pamięć sesji i pamięć lokalna zachowują się tak samo, z tą różnicą, że pamięć lokalna będzie przechowywać dane do momentu, aż użytkownik usunie pamięć podręczną i pliki cookie oraz dane pamięci sesji zostaną zachowane w systemie do momentu zamknięcia sesji, tj. Do czasu zamknięcia okno utworzone do przechowywania sesji.
źródło
Zaletą przechowywania sesji w porównaniu z przechowywaniem lokalnym jest, moim zdaniem, to, że ma on nieograniczoną pojemność w przeglądarce Firefox i nie będzie trwał dłużej niż sesja. (Oczywiście zależy to od celu.)
źródło
Lokalne przechowywanie: Przechowuje dane informacji o użytkowniku bez daty wygaśnięcia. Dane te nie zostaną usunięte, gdy użytkownik zamknie okna przeglądarki, będą dostępne przez dzień, tydzień, miesiąc i rok.
Przechowywanie sesji: To samo, co lokalna data przechowywania, z tym wyjątkiem, że usunie wszystkie okna, gdy okno przeglądarki zostanie zamknięte przez użytkownika sieci.
Czytaj więcej Kliknij
źródło
Wziąłem to z https://developer.mozilla.org/en-US/docs/Web/API/Web_Storage_API
źródło