Quando viene cancellato localStorage?


112

Per quanto tempo posso aspettarmi che i dati vengano conservati in localStorage. Per quanto tempo i dati localStorage di un utente medio persistono? Se l'utente non lo cancella, durerà fino alla reinstallazione del browser?

È coerente su tutti i browser?

Risposte:


99

La bozza del W3C dice questo

I programmi utente dovrebbero far scadere i dati dalle aree di archiviazione locale solo per motivi di sicurezza o quando richiesto dall'utente. I programmi utente dovrebbero sempre evitare di cancellare i dati mentre è in esecuzione uno script che potrebbe accedere a quei dati.

Quindi, se i browser seguono le specifiche, dovrebbe persistere fino a quando l'utente non lo rimuove su tutti i browser, non ho trovato nessuno che abbia eliminato nessuno dei miei progetti.

Un buon articolo da leggere è anche http://ejohn.org/blog/dom-storage/


"Richiesto per farlo dall'utente" = quando l'utente cancella i dati. Vedi stevesouders.com/blog/2012/09/10/clearing-browser-data per la pulizia specifica del browser e come farlo.
Julien Kronegg

La memoria locale può essere cancellata durante l'aggiornamento di Chrome. Questo mi è successo due volte negli ultimi 12 mesi. Se i dati sono importanti, abilitare e incoraggiare l'utente a scaricare i dati rilevanti su file in modo che possano essere reinstallati se ciò accade.
user2677034

116

localStorage è anche noto come Web Storage, HTML5 Storage e DOM Storage (tutti significano la stessa cosa).

localStorage è simile a sessionStorage, tranne per il fatto che i dati memorizzati in localStorage non hanno una scadenza, mentre i dati memorizzati in sessionStorage vengono cancellati al termine della sessione di navigazione (cioè quando la scheda del browser / browser viene chiusa). L'archiviazione della sessione viene utilizzata molto meno spesso di localStorage ed esiste solo nella scheda del browser corrente: anche due schede caricate con lo stesso sito Web avranno dati sessionStorage diversi. I dati sessionStorage sopravvivono all'aggiornamento della pagina, ma non chiudono / aprono la scheda. I dati di LocalStorage, d'altra parte, sono condivisi tra tutte le schede e le finestre dalla stessa origine. I dati LocalStorage non scadono; rimane dopo il riavvio del browser e anche dopo il riavvio del sistema operativo. fonte

localStorage è disponibile su tutti i browser, ma la persistenza non è implementata in modo coerente. In particolare, localStorage può essere cancellato dall'azione dell'utente e può essere cancellato inavvertitamente (chi penserebbe che la cancellazione di tutti i cookie cancelli anche localStorage?).

In Firefox, localStorage viene cancellato quando vengono soddisfatte queste tre condizioni: (a) l'utente cancella la cronologia recente, (b) i cookie vengono selezionati per essere cancellati, (c) l'intervallo di tempo è "Tutto"

In Chrome, localStorage viene cancellato quando vengono soddisfatte queste condizioni: (a) cancella i dati di navigazione, (b) "cookie e altri dati dei siti" è selezionato, (c) il periodo di tempo è "dall'inizio del tempo". In Chrome, ora è anche possibile eliminare localStorage per un sito specifico .

In IE, per cancellare localStorage: (a) Strumenti - Opzioni Internet, (b) scheda Generale, (c) elimina la cronologia di navigazione all'uscita, (d) assicurati "Cookie e dati di siti web" (o "file temporanei di Internet e file di siti web ") è selezionato, (e) considera la possibilità di deselezionare" Conserva i dati del sito web preferiti "in alto

In Safari: (a) Fare clic su Safari (b) Preferenze (c) Selezionare la scheda Privacy (d) Fare clic su Rimuovi tutti i dati del sito web (e) Fare clic su Rimuovi ora

Opera: Nonostante gli ottimi articoli su localStorage dal sito di Opera, non ho ancora trovato istruzioni chiare (non programmatiche) per gli utenti su come cancellare localStorage. Se qualcuno lo trova, lascia un commento sotto questa risposta con il link di riferimento.


Il sito di Opera dev ha un eccellente riepilogo di localStorage:

L'attuale modo di memorizzare i dati sul lato client, i cookie, è un problema:

  • Dimensioni ridotte: i cookie generalmente hanno una dimensione massima di circa 4 KB, il che non è molto utile per memorizzare qualsiasi tipo di dati complessi

  • È difficile per i cookie tenere traccia di due o più transazioni sullo stesso sito, che potrebbero avvenire in due o più schede diverse

  • I cookie possono essere sfruttati utilizzando tecniche come il cross site scripting, con conseguenti violazioni della sicurezza

Altre alternative (meno popolari) ai cookie includono tecniche che coinvolgono stringhe di query, campi modulo nascosti, oggetti condivisi locali basati su flash, ecc. Ciascuna con la propria serie di problemi relativi a sicurezza, facilità d'uso, limitazioni di dimensione ecc. hanno utilizzato metodi piuttosto pessimi per memorizzare i dati sul lato dell'utente. Abbiamo bisogno di un modo migliore, ed è qui che entra in gioco Web Storage.

Archiviazione web

La specifica W3C Web Storage è stata progettata come un modo migliore per archiviare i dati sul lato client. Ha due diversi tipi di archiviazione: archiviazione della sessione e archiviazione locale.

Sia la sessione che l'archiviazione locale saranno in genere in grado di memorizzare circa 5 MB di dati per dominio, che è significativamente più dei cookie.

risorse:

https://developer.mozilla.org/en-US/docs/Web/API/Window/sessionStorage

https://javascript.info/localstorage

https://dev.opera.com/articles/web-storage/

http://www.quirksmode.org/html5/storage.html

http://www.ghacks.net/2015/02/05/how-to-clear-web-storage-in-your-browser-of-choice/

https://nakedsecurity.sophos.com/2014/11/05/how-to-clear-out-cookies-flash-cookies-and-local-storage/

http://www.opera.com/dragonfly/documentation/storage/

Articolo DOMStorage su MDN (scritto da John Resig)

http://ejohn.org/blog/dom-storage/


2
Vorrei aggiungere che puoi effettivamente vedere, modificare e rimuovere queste variabili localStorage in "Modalità sviluppo" (premendo F12), nella scheda Archiviazione.
David Tabernero M.

È lo stesso caso con indexDB? Cioè può anche essere cancellato dall'azione dell'utente?
Pylinux

In IE Oltre ai passaggi precedenti, l'utente deve chiudere il browser, quindi solo lui può vedere la rimozione di localstorage
Kyasa Madhavi

2

Il contenuto in localstorage è persistente fintanto che l'utente sceglie di cancellare lo spazio di archiviazione (interamente o un singolo valore al suo interno)

Per quanto riguarda la coerenza tra i browser, localstorage è attualmente disponibile su tutti i principali browser, incluso IE8 + (vedi http://caniuse.com/#feat=namevalue-storage )


1

In Chrome durante l'esecuzione di "Cancella dati di navigazione", se scegli l'opzione "Cookie e altri dati di siti e plug-in", i dati di sessionStorage verranno cancellati.

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.