devrais-je utiliser Je demande parce que je ne veux pas finir par effacer les utilisateurs ' EDIT: J'aurais dû mentionner que Je sais que LocalStorage est à la disposition du domaine. Je gère un site qui suit cette structure: p> où chaque fichier utilise ses propres variables locales distinctes. Si i clair () code> pour tout effacer dans
localStorage code> ou dois-je juste manuellement
removeItem () code> Ceux que j'ai définis Sur ce site particulier (qui est assez facile à garder une trace de)?
localStorage code> s'ils ont d'autres valeurs définies. Je teste cela dans localhost et remarquai qu'en utilisant
Clear () code>, tout ce que j'aurais défini précédemment dans d'autres projets a été effacé. P>
localstorage.clear () code> Inside Project2, Project1 et les paramètres de Project3 seront également perdus. P> P>
3 Réponses :
Effacer () code> efface tout sur l'origine actuelle ( https://developer.mozilla.org/en-us/docs/javascript/same_origin_policy_for_javascript ). Utilisation
Clear () code> sur exemple.com n'affectera pas le localStorage pour exemple2.com. Il est d'éviter les données pour tous les projets de votre ordinateur car tous les fichiers de test que vous avez sont sur la même origine (
http: // localhost localhost code> ou
fichier: /// c: \ < / code>). Par conséquent, il ira bien à utiliser
clair () code> p>
localStorage est clément à une origine. Donc, si tous vos projets fonctionnent sur localhost, vous effacerez toutes vos valeurs lorsque vous utilisez Dans un environnement de production, chaque projet doit avoir son propre domaine et C'est donc une question de savoir quoi d'autre se trouve sur l'origine actuelle. Si vous contrôlez tout sur l'origine actuelle et que vous ne vous dérangeez pas tout, Clear () code> et la seule méthode de sécurité est la suppression individuelle. P>
clair code> doit être sûr. P>
Clear () Code> est le meilleur choix et a été conçu à cet effet. S'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, vous voudrez être plus sélectif et utiliser
removeItem () code>. P>.
Malheureusement, je n'ai pas de domaine isolé pour chacun de mes projets - je ne pouvais tout simplement pas me permettre. J'aimerais tout garder sous mon propre site Web de Portfolio'-ESQ, avec des sous-dossiers contenant chacun de mes projets différents et différents. Merci bien, on dirait que removeItem () code> est la voie à suivre!
@Jaxo Si vous avez un sous-domaine différent pour chaque projet clair () code> fonctionnerait toujours
removeItem () méthode forte> p> removeItem ("liste") supprimera uniquement les éléments de la touche "Liste" p> // pour mieux comprendre le code ci-dessous strong> p> p> Effacer () code> strong>
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Document</title>
</head>
<body>
<button id="clear-method">Clear Method</button>
<button id="removeItem-method">RemoveItem Method</button>
<script>
const clearMethod = document.getElementById("clear-method");
const removeItemMethod = document.getElementById("removeItem-method");
// declaring arraay for localStorage
const computer = [
{
Brand: "Asus",
Model: "Unknown"
}
];
const phone = [
{
Brand: "Realme",
Model: "Unknown"
}
]
// setting up items on localStorage
localStorage.setItem("computer", JSON.stringify(computer));
localStorage.setItem("phone", JSON.stringify(phone));
clearMethod.addEventListener("click", ()=>{
localStorage.clear();
})
removeItemMethod.addEventListener("click", ()=>{
localStorage.removeItem("phone");
})
</script>
</body>
</html>
Je ne sais pas quelle est la question ici. Vous dites que vous ne pouvez pas utiliser
effacer code> alors ...