2015-04-30 24 views
48

Sto lavorando in un'app in cui è necessario conservare alcuni dati durante l'accesso dell'utente e ho questa domanda, qual è la differenza tra localStorage, sessionStorage, cookies ???localStorage vs sessionStorage vs cookies

Mi stavo chiedendo cosa posso usare per mantenere alcuni dati nel DOM, anche se l'utente aggiorna la pagina, alcune persone dicono: usa sessionStorage, o localStorage, poi qualcuno ha avuto l'idea di usare ngCookies perché funziona in tutti i browser, ma, quale dovrei usare?

+1

Penso che [questo collegamento] (http://stackoverflow.com/a/19869560/1252158) spiegherà questo in modo più ampio –

+1

Inoltre, si noti che i cookie di sessione sono attivi finché il browser WINDOW è aperto (non è la scheda in cui erano impostati) MA sessionStorage viene annullato non appena si chiude la scheda ... – yar1

risposta

68

localStorage e sessionStorage sono entrambi cosiddetti WebStorages e caratteristiche di HTML5.

localStorage memorizza le informazioni a condizione che l'utente non le elimini.

sessionStorage memorizza le informazioni per tutto il tempo necessario alla sessione. Solitamente fino a quando l'utente chiude la scheda/browser.

cookie sono semplicemente i cookie, che sono supportate da browser più vecchi e di solito sono un ripiego per strutture che utilizzano i suddetti WebStorages.

Al contrario i cookie possono memorizzare meno informazioni, quindi WebStorage e le informazioni in WebStorages non vengono mai trasferiti sul server.

Ricordare che l'UE dispone di un regolamento che richiede ai siti Web di informare i propri utenti sull'utilizzo dei cookie. Non so se questo vale anche per WebStorages

+0

cosa mi consigliate da usare? i dati che ho bisogno di persistere sono solo il nome utente e l'email nel DOM. Non è un'app che richiede piena sicurezza. – NietzscheProgrammer

+3

Dipende, se hai bisogno di browser vecchi (pre HTML5) per essere supportati, vuoi i cookie. Altrimenti personalmente userò gli archivi (localStorage se hai bisogno dei dati 'per sempre', altrimenti sessionStorage) perché mi piace usare nuove funzionalità;) – Rouby

+8

"Non so se questo si applica anche ai WebStorage" - Lo fa. https://ico.org.uk/for-organisations/guide-to-pecr/cookies-and-similar-technologies/ – Quentin

16

oggetto sessionStorage: I sessionStorage oggetto memorizza i dati solo per una sessione, il che significa che i dati vengono memorizzati fino a quando il browser (o scheda) è chiuso. non è disponibile quando un file viene eseguito localmente.

I dati memorizzati nell'oggetto sessionStorage sono accessibili solo dalla pagina che inizialmente memorizzava i dati; quindi questo non soddisfa la vostra esigenza

oggetto localStorage: dati memorizzati utilizzando l'oggetto localStorage viene mantenuto fino a quando non è specificamente rimosso tramite JavaScript oppure l'utente cancella la cache del browser.

I dati memorizzati nell'oggetto localStorage sono accessibili solo dal dominio che inizialmente memorizzava i dati.

Per il tuo caso, penso che tu prenda in considerazione l'utilizzo di cookie o sessione, pls. nota cookie ha una limitazione della dimensione 4K per server.

+0

Non penso che quello che hai menzionato in secondo luogo su sessionStorage sia corretto, almeno non nel contesto di angular. In base alle specifiche ogni sessionStorage è associato al contesto di navigazione di livello superiore, che sarebbe lo stesso per ogni pagina in un'app angolare. – Rouby

+0

tutto ciò di cui ho bisogno per persistere sono le informazioni utente, come email, nome utente e forse una foto, sarebbe sufficiente per utilizzare la sessione 4K o i cookie? – NietzscheProgrammer

+0

dovrebbe essere ok per mettere email e username nei cookies, non penso che sia necessario salvare le immagini –

3

Oltre alle altre risposte, WebStorage non può accedere al dominio secondario e/o secondario.

-2

I cookie contengono solo dati a 4kbs e come tempo di scadenza.

localStorage sono i cookie permanenti vale 4 MB di dati verrà eliminato quando l'utente cancella la cache

0

localStorage: 1. Dati Limite: 5 MB 2.I dati inviati per ogni richiesta http: no

sessionStorage: 1. Dati Limite: 5 MB 2. I dati inviati per ogni richiesta http: nessun 3. I dati saranno cancellati una volta finestra o scheda viene chiusa

Direi, usare localstorage/sessionStorage se i dati non sono sensibili altrimenti usare i cookie

Problemi correlati