2015-04-30 21 views
48

Pracuję w aplikacji, w której muszę zachować dane podczas logowania użytkownika i mam to pytanie, jaka jest różnica między localStorage, sessionStorage, cookies ???localStorage vs sessionStorage vs cookies

Pytałem, co mogę użyć, aby utrzymać pewne dane w DOM, nawet jeśli użytkownik odświeży stronę, niektórzy mówią: użyj sessionStorage lub localStorage, wtedy ktoś wpadł na pomysł użycia ngCookies ponieważ działa w każdej przeglądarce, ale której powinienem użyć?

+1

Myślę, że [ten link] (http://stackoverflow.com/a/19869560/1252158) wyjaśni to w szerszym zakresie –

+1

Należy również pamiętać, że pliki cookie sesji są aktywne tak długo, jak długo przeglądarka WINDOW jest otwarta (nie jest to zakładka, w której zostały ustawione) ALE sessionStorage jest zerowana zaraz po zamknięciu zakładki ... – yar1

Odpowiedz

68

localStorage i sessionStorage są zarówno tzw WebStorages i cechy HTML5.

localStorage przechowuje informacje tak długo, jak użytkownik ich nie usuwa.

sessionStorage przechowuje informacje tak długo, jak długo trwa sesja. Zwykle, dopóki użytkownik nie zamknie karty/przeglądarki.

ciasteczka są po prostu cookies, które są obsługiwane przez starsze przeglądarki i zazwyczaj są awaryjna dla ram, które korzystają z wyżej wymienionych WebStorages.

W przeciwieństwie do plików cookie mogą przechowywać dużo mniej informacji, a następnie WebStorages i informacje w WebStorages nigdy nie są przesyłane na serwer.

Należy pamiętać, że UE posiada regulację, która wymaga stron internetowych do informowania użytkowników o korzystaniu z plików cookie. Nie wiem, czy dotyczy to również WebStorages

+0

co polecasz mi użyć? dane, które muszę zachować, to tylko nazwa użytkownika i adres e-mail w DOM. Nie jest aplikacją wymagającą pełnego bezpieczeństwa. – NietzscheProgrammer

+3

Zależy, jeśli potrzebujesz starych przeglądarek (pre HTML5) do obsługi, chcesz pliki cookie. Inaczej osobiście użyłbym magazynów (localStorage, jeśli potrzebujesz danych "na zawsze", inaczej sessionStorage), ponieważ lubię używać nowych funkcji;) – Rouby

+8

"Nie wiem, czy dotyczy to również WebStorages" - Tak jest. https://ico.org.uk/for-organisations/guide-to-pecr/cookies-and-similar-technologies/ – Quentin

16

sessionStorage obiektu: Dane sessionStorage przechowuje obiekt tylko dla sesji, co oznacza, że ​​dane są przechowywane aż do przeglądarki (lub karty) jest zamknięty. nie jest dostępny, gdy plik jest uruchamiany lokalnie.

Dane przechowywane w obiekcie sessionStorage są dostępne tylko ze strony, która pierwotnie zapisała dane; więc to nie spełnia Państwa wymagania

localStorage obiektu: Dane przechowywane przy użyciu obiektu localStorage jest zachowywane, dopóki nie zostanie usunięta poprzez specjalnie JavaScript lub użytkownik czyści pamięć podręczną przeglądarki.

Dane przechowywane w obiekcie localStorage są dostępne tylko z domeny, która pierwotnie zapisała dane.

Dla twojego przypadku, myślę, że rozważasz użycie cookie lub sesji, pls. Uwaga cookie ma ograniczenie rozmiaru 4K na serwer.

+0

Nie sądzę, że to, o czym wspomniałeś w drugim miejscu, o sesji, jest poprawne, przynajmniej nie w kontekście kątowym. Według specyfikacji każda sesjaStorage jest powiązana z kontekstem przeglądania najwyższego poziomu, który byłby taki sam dla każdej strony w kanciastej aplikacji. – Rouby

+0

wszystko, co muszę zachować, to informacje o użytkowniku, takie jak adres e-mail, nazwa użytkownika i może zdjęcie, czy to wystarczy, aby skorzystać z sesji 4K lub plików cookie? – NietzscheProgrammer

+0

powinno być OK, aby umieścić adres e-mail i nazwę użytkownika w ciasteczkach, nie sądzę, że musisz zapisać zdjęcia –

3

Oprócz innych odpowiedzi, WebStorages nie ma dostępu do subdomeny i/lub domeny nadrzędnej.

-2

Pliki cookie to tylko 4 kb danych i jako czas wygaśnięcia.

localStorage są trwałe ciasteczka posiada 4 MB danych będzie go usunąć, gdy użytkownik Czyści bufor

0

localStorage: 1. Dane Limit: 5 MB 2.Dane wysyłane do każdego żądania http: nie

sessionStorage: 1. Dane Limit: 5 MB 2. Dane wysyłane do każdego żądania http: brak 3. dane zostaną skasowane po oknie lub karta jest zamknięty

Powiedziałbym, użyj localstorage/sessionStorage, jeśli dane są nieczułe, inne używają ciasteczek

Powiązane problemy