localStorage - clear() ou removeItem()?
Dois-je utiliser clear()
pour tout détruire dans localStorage
, ou devrais-je simplement manuellement removeItem()
ceux que j'ai mis sur ce site en particulier (qui est assez facile à suivre)?
Je demande parce que je n'ai pas envie de finir en effaçant les utilisateurs localStorage
si ils ont d'autres valeurs. Je suis en essais ce en localhost et a remarqué qu'en utilisant clear()
, tout ce que j'avais mis auparavant dans d'autres projets a été anéantie.
EDIT: je devrais avoir mentionné que je sais localStorage est un domaine verrouillé. Je suis sur un site qui suit cette structure:
public-html
(localStorage)
--project1
----files
--project2
----files
--project3
----files
Où chaque fichier utilise son propre localStorage variables. Si je localstorage.clear()
à l'intérieur de project2, project1 et project3 les paramètres seront perdus.
clear
donc...OriginalL'auteur Scott | 2013-03-18
Vous devez vous connecter pour publier un commentaire.
localstorage est assortie d'une origine. Donc, si vos projets sont en cours d'exécution sur l'hôte local, alors vous allez essuyer toutes vos valeurs lorsque vous utilisez
clear()
, et la seule méthode sûre est l'individu de l'enlèvement.Dans un environnement de production, chaque projet doit avoir son propre nom de domaine et
clear
devrait être en sécurité.C'est donc une question de savoir de quoi d'autre est sur le point d'origine actuel. Si vous contrôlez tout sur l'origine actuelle et n'ont pas l'esprit de l'essuyer à tous,
clear()
est le meilleur choix, et a été conçu à cet effet. Si il y a d'autres parties de votre code à l'aide de localstorage ou d'autres projets hébergés sur la même origine, alors vous voulez être plus sélectif et l'utilisationremoveItem()
.removeItem()
est le chemin à parcourir!si vous avez un sous-domaine différent pour chaque projet
clear()
fonctionne encoreOriginalL'auteur Ben McCormick
clear()
efface tout sur l'origine actuelle (https://developer.mozilla.org/en-US/docs/JavaScript/Same_origin_policy_for_JavaScript). À l'aide declear()
sur example.com n'affectera pas le localStorage pour example2.com. C'est l'effacement des données pour tous les projets sur votre ordinateur parce que tous les tests des fichiers que vous avez sont sur la même origine (http://localhost
oufile:///C:\
). Par conséquent, il sera très bien pour l'utilisationclear()
OriginalL'auteur markasoftware