Oltre ad essere non persistente e limitato solo alla finestra corrente, ci sono dei vantaggi (prestazioni, accesso ai dati, ecc.) All'archiviazione delle sessioni sull'archiviazione locale?
Oltre ad essere non persistente e limitato solo alla finestra corrente, ci sono dei vantaggi (prestazioni, accesso ai dati, ecc.) All'archiviazione delle sessioni sull'archiviazione locale?
Risposte:
localStorage e sessionStorage estendono entrambi l' archiviazione . Non vi è alcuna differenza tra loro ad eccezione della prevista "non persistenza" di sessionStorage
.
Cioè, i dati memorizzati localStorage
persistono fino a quando non vengono esplicitamente eliminati . Le modifiche apportate vengono salvate e disponibili per tutte le visite attuali e future al sito.
Per sessionStorage
, le modifiche sono disponibili solo per scheda. Le modifiche apportate vengono salvate e disponibili per la pagina corrente in quella scheda fino alla sua chiusura. Una volta chiuso, i dati memorizzati vengono eliminati.
L'unica differenza è che localStorage ha un tempo di scadenza diverso, sessionStorage
sarà accessibile solo mentre è aperta la finestra che lo ha creato. localStorage
dura fino a quando non lo elimini o l'utente lo elimina.
Diciamo che si voleva salvare un nome utente e la password che si desidera utilizzare sessionStorage
nel corso localStorage
per motivi di sicurezza (ad es. Una persona accedere al loro conto in un secondo momento).
Ma se volessi salvare le impostazioni di un utente sul suo computer, probabilmente lo vorresti localStorage
. Tutto sommato:
localStorage
- utilizzare per un uso a lungo termine.
sessionStorage
- utilizzare quando è necessario conservare qualcosa che cambia o qualcosa di temporaneo
Pochi altri punti che potrebbero essere utili per comprendere le differenze tra archiviazione locale e sessione
Sia l'archiviazione locale che l'archiviazione di sessione hanno come ambito l'origine del documento, quindi
https://mydomain.com/
http://mydomain.com/
https://mydomain.com:8080/
Tutti gli URL di cui sopra non condivideranno lo stesso spazio di archiviazione. (Il percorso di avviso della pagina Web non influisce sulla memoria Web)
L'archiviazione della sessione è diversa anche per il documento con lo stesso criterio di origine aperto in schede diverse, quindi la stessa pagina Web aperta in due schede diverse non può condividere la stessa archiviazione di sessione.
Sia l'archiviazione locale che quella di sessione sono gestite anche dai fornitori di browser . Pertanto i dati di archiviazione salvati da IE non possono essere letti da Chrome o FF.
Spero che sia di aiuto.
La differenza principale tra localStorage
e sessionStorage
è che sessionStorage
è unica per scheda. Se si chiude la scheda sessionStorage
viene eliminata, localStorage
non lo fa. Inoltre non è possibile comunicare tra le schede :)
Un'altra sottile differenza è che ad esempio su Safari (8.0.3) localStorage
ha un limite di 2551 k caratteri ma sessionStorage
ha una memoria illimitata
Su Chrome (v43) entrambi localStorage
e sessionStorage
sono limitati a 5101 k caratteri (nessuna differenza tra la modalità normale / in incognito)
Su Firefox entrambi localStorage
e sessionStorage
sono limitati a 5120 k caratteri (nessuna differenza tra la modalità normale / privata)
Nessuna differenza di velocità :)
C'è anche un problema con Mobile Safari e Mobile Chrome, Safari in modalità privata e Chrome hanno uno spazio massimo di 0 KB
sessionStorage
è lo stesso localStorage
, tranne per il fatto che memorizza i dati per una sola sessione e verrà rimosso quando l'utente chiude la finestra del browser che l'ha creato.
per quanto riguarda le prestazioni, le mie misurazioni (grossolane) non hanno riscontrato differenze su 1000 scritture e letture
per quanto riguarda la sicurezza, intuitivamente sembrerebbe che il localStore possa essere chiuso prima del sessionStore, ma non ha prove concrete - forse qualcun altro lo fa?
dal punto di vista funzionale, concorda con digitalFresh sopra
L'archiviazione della sessione e l'archiviazione locale hanno lo stesso comportamento, tranne uno che è l'archiviazione locale memorizzerà i dati fino a quando, a meno che l'utente non elimini la cache, i cookie e i dati di archiviazione della sessione rimarranno nel sistema fino alla chiusura della sessione i, e fino alla chiusura la finestra di archiviazione della sessione creata.
Il vantaggio dell'archiviazione di sessione rispetto all'archiviazione locale, a mio avviso, è che ha una capacità illimitata in Firefox e non persisterà più a lungo della sessione. (Naturalmente dipende da quale sia il tuo obiettivo.)
Archiviazione locale: mantiene i dati delle informazioni dell'utente conservati senza data di scadenza che non verranno eliminati quando l'utente chiuderà le finestre del browser e sarà disponibile per giorno, settimana, mese e anno.
//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
Archiviazione sessione: è uguale alla data di archiviazione locale tranne per l'eliminazione di tutte le finestre quando le finestre del browser vengono chiuse da un utente Web.
//set the value to a object in session storege
sessionStorage.myNameInSession = "Krishna";
Ulteriori informazioni Fare clic
sessionStorage
mantiene un'area di archiviazione separata per ogni origine che è disponibile per la durata della sessione di pagina (purché il browser sia aperto, inclusi ricariche e ripristini di pagine)
localStorage
fa la stessa cosa, ma persiste anche quando il browser viene chiuso e riaperto.
L'ho preso da https://developer.mozilla.org/en-US/docs/Web/API/Web_Storage_API