2013-03-18 25 views
9

Devo usare clear() per cancellare tutto in localStorage, o devo semplicemente manualmente removeItem() quelli che ho impostato su quel particolare sito (che è abbastanza facile da tenere traccia di)?localStorage - clear() o removeItem()?

Chiedo perché non voglio finire spazzando via gli utenti localStorage se hanno altri valori impostati. Sto testando questo in localhost e ho notato che usando clear(), tutto ciò che avevo impostato in precedenza in altri progetti è stato spazzato via.

EDIT: avrei dovuto dire che so localStorage è dominio bloccato. Sto eseguendo un sito che segue questa struttura:

public-html 
(localStorage) 
--project1 
----files 
--project2 
----files 
--project3 
----files 

Dove ogni file utilizza le proprie variabili localStorage separate. Se I localstorage.clear() all'interno di project2, le impostazioni di project1 e project3 andranno perse.

+1

Non so quale sia la domanda qui. Stai dicendo che non puoi usare 'clear' quindi ... – user123444555621

risposta

10

lo spazio locale è impostato su un'origine. Quindi se tutti i tuoi progetti sono in esecuzione su localhost, allora cancelli tutti i tuoi valori quando usi clear() e l'unico metodo sicuro è la rimozione individuale.

In un ambiente di produzione, ogni progetto dovrebbe avere il proprio dominio e clear dovrebbe essere sicuro.

Quindi è una questione di sapere cos'altro c'è sull'origine corrente. Se controlli tutto sull'origine corrente e non ti dispiace pulirlo tutto, clear() è la scelta migliore ed è stato progettato per quello scopo. Se ci sono altre parti del tuo codice usando localstorage o altri progetti ospitati sulla stessa origine, allora vorresti essere più selettivo e usare removeItem().

+0

Purtroppo non ho un dominio unico per ognuno dei miei progetti - semplicemente non me lo posso permettere. Mi piacerebbe tenere tutto sotto il mio personale sito web "portfolio", con sottocartelle contenenti ciascuno dei miei diversi progetti separati. Grazie però, sembra che 'removeItem()' sia la strada da percorrere! – Scott

+0

@Jaxo se hai un sottodominio diverso per ogni progetto 'clear()' funzionerebbe ancora – Markasoftware