HTML5 Local storage vs. Session storage

Poza tym, że nie jest trwały i ma zasięg tylko do bieżącego okna, czy są jakieś korzyści (wydajność, dostęp do danych itp.) z przechowywania sesji nad pamięcią lokalną?

Author: Rodrigue, 2011-04-02

11 answers

LocalStorage i sessionStorage obie rozszerzają Storage. Nie ma żadnej różnicy między nimi, z wyjątkiem zamierzonego "braku trwałości" sessionStorage.

Czyli dane przechowywane w localStorage trwa do momentu wyraźnego usunięcia . Wprowadzone zmiany są zapisywane i dostępne dla wszystkich obecnych i przyszłych wizyt na stronie.

Dla sessionStorage, zmiany są dostępne tylko na karcie. wprowadzone zmiany są zapisywane i dostępne dla bieżącej strony w tym tab dopóki nie zostanie zamknięta. Po jego zamknięciu przechowywane dane są usuwane.

 869
Author: tcooc,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2020-03-31 02:56:16

Jedyną różnicą jest to, że localStorage ma inny czas wygaśnięcia, sessionStorage będzie dostępny tylko wtedy, gdy i przez okno, które go utworzyło, jest otwarte.
localStorage trwa do momentu usunięcia go lub usunięcia przez użytkownika.
Powiedzmy, że chcesz zapisać nazwę użytkownika i hasło, które chcesz użyć sessionStorage nad localStorage ze względów bezpieczeństwa (np. inna osoba uzyskująca dostęp do swojego konta w późniejszym czasie).
ale jeśli chcesz zapisać ustawienia użytkownika na jego komputerze, prawdopodobnie want localStorage. W sumie:

localStorage - stosować do długotrwałego stosowania.
sessionStorage - Używaj, gdy musisz przechowywać coś, co się zmienia lub coś tymczasowego

 166
Author: MayorMonty,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2015-11-22 22:24:01

Kilka innych punktów, które mogą być pomocne w zrozumieniu różnic między przechowywaniem lokalnym a sesyjnym

  1. Zarówno magazyn lokalny, jak i magazyn sesyjny są ustawione na document origin, więc

    Https://mydomain.com/
    http://mydomain.com/
    https://mydomain.com:8080/

    Wszystkie powyższe adresy URL nie Udostępnij ten sam magazyn. (Uwaga ścieżka strony nie wpływa na www storage)

  2. Przechowywanie sesji jest inne nawet dla dokumentu z tą samą Polityką pochodzenia otwartą w różnych kartach, więc ta sama strona internetowa otwarta w dwóch różnych kartach nie można Udostępnij ten sam magazyn sesji.

  3. Zarówno pamięć lokalna, jak i sesyjna są również objęte zakresem dostawcy przeglądarek. Tak więc dane zapisane przez IE nie mogą być odczytywane przez Chrome lub FF.

Mam nadzieję, że to pomoże.

 109
Author: functionoid,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2014-02-06 17:22:47

Główna różnica między localStorage i sessionStorage jest taka, że sessionStorage jest unikalna na kartę. Jeśli zamkniesz kartę, {[1] } zostanie usunięta, localStorage nie. Również nie można komunikować się między zakładkami:)

Kolejną subtelną różnicą jest to, że na przykład w Safari (8.0.3) localStorage ma limit 2551 znaków k, ale sessionStorage ma nieograniczoną pamięć

Na Chrome (v43) zarówno localStorage, jak i sessionStorage są ograniczone do 5101 znaków k (bez różnicy między trybem normalnym / incognito)

On Firefox zarówno localStorage, jak i sessionStorage są ograniczone do 5120 znaków k (bez różnicy między trybem normalnym / prywatnym)

Żadnej różnicy w prędkości:)

W przypadku wersji mobilnej Safari i Chrome występuje również problem, Tryb prywatny Safari i Chrome mają maksymalną przestrzeń 0KB.]}
 32
Author: Eek,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2020-01-22 22:06:51

sessionStorage jest tym samym co localStorage, z tą różnicą, że przechowuje dane tylko dla jednej sesji i zostanie usunięta, gdy użytkownik zamknie okno przeglądarki, które je utworzyło.

 18
Author: Ahmad Santarissy,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2019-04-17 09:29:06

Wydajność, moje (surowe) pomiary nie znalazły różnicy na 1000 zapisów i odczytów

Bezpieczeństwo mądrze, intuicyjnie wydaje się, że localStore może być zamknięty przed sessionStore, ale nie ma konkretnych dowodów - może ktoś inny to robi?

Funkcjonalny mądry, zgodny z digitalFresh powyżej

 9
Author: cc young,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2011-04-02 12:36:32

Ya session storage i local storage są takie same w zachowaniu z tym, że jest to local storage będzie przechowywać dane do czasu i chyba użytkownik usunie pamięć podręczną, a Pliki cookie i dane przechowywania sesji będą przechowywane w systemie do czasu zamknięcia sesji i, E, aż zamkniemy utworzone okno przechowywania sesji.

 6
Author: Bhargavi,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2013-07-30 09:28:14

Zaletą pamięci masowej sesji nad pamięcią lokalną, moim zdaniem, jest to, że ma nieograniczoną pojemność w Firefoksie i nie będzie trwać dłużej niż sesja. (Oczywiście zależy to od tego, jaki jest twój cel.)

 5
Author: avvett,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2017-06-20 15:06:48

Local storage: przechowuje dane o Użytkowniku bez daty wygaśnięcia te dane nie zostaną usunięte, gdy użytkownik zamknie okna przeglądarki, będą dostępne dla dnia, tygodnia, miesiąca i roku.

//Set the value in a local storage object
localStorage.setItem('name', myName);

//Get the value from storage object
localStorage.getItem('name');

//Delete the value from local storage object
localStorage.removeItem(name);//Delete specifice obeject from local storege
localStorage.clear();//Delete all from local storege

Przechowywanie Sesji: jest to tak samo jak data przechowywania lokalnego, z tym że usunie wszystkie okna, gdy okna przeglądarki zostaną zamknięte przez użytkownika sieci.

//set the value to a object in session storege
sessionStorage.myNameInSession = "Krishna";

Czytaj Więcej Kliknij

 2
Author: Srikrushna,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2018-06-29 19:49:58
  • sessionStorage utrzymuje oddzielny obszar pamięci dla każdego miejsca pochodzenia, który jest dostępny przez czas trwania sesji strony (tak długo, jak przeglądarka jest otwarta, w tym przeładowuje i przywraca Stronę)

  • localStorage robi to samo, ale utrzymuje się nawet po zamknięciu i ponownym otwarciu przeglądarki.

Wziąłem to od Web Storage API

 2
Author: Linda Gutiérrez Montoya,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2021-01-11 10:18:23

Późna odpowiedź, ale czułem, że dodam tu kilka punktów.

Pamięć sesji będzie dostępna dla konkretnej karty, gdzie możemy korzystać z pamięci lokalnej za pośrednictwem przeglądarki. Oba są domyślnie tego samego pochodzenia i możemy również przechowywać wartości ręcznie za pomocą par key, value (Wartość musi być string).

Po zamknięciu zakładki (sesji) przeglądarki następuje Przechowywanie sesjizostaną rozliczone na tej zakładce, gdzie podobnie jak w przypadku lokalnego przechowywania musimy Wyczyść to. jawnie. Maksymalny limit przechowywania odpowiednio 5MB i 10MB.

Możemy zapisać i pobrać dane jak poniżej,

Aby Zapisać:

sessionStorage.setItem('id', noOfClicks);   // localStorage.setItem('id', noOfClicks);

sessionStorage.setItem('userDetails', JSON.stringify(userDetails));   // if it's object

Aby Uzyskać:

sessionStorage.getItem('id');    // localStorage.getItem('id');

User user = JSON.parse(sessionStorage.getItem("userDetails")) as User;  // if it's object

Do Modyfikacji:

sessionStorage.removeItem('id');    // localStorage.removeItem('id');

sessionStorage.clear();   // localStorage.clear();

P. S: getItem() również zwracają dane jako ciąg znaków i my need convert it do formatu JSON , aby uzyskać dostęp, jeśli jest to obiekt.

Możesz przeczytać więcej o magazynach przeglądarek proszę..

  1. Różnica między localStorage, sessionStorage i cookies

  2. Localstorage-vs-sessionstorage

 0
Author: ganesh045,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2021-01-10 16:09:32