Maison interface Web js tutoriel Explication détaillée des points clés de l'utilisation de localStorage dans les compétences JavaScript_javascript

Explication détaillée des points clés de l'utilisation de localStorage dans les compétences JavaScript_javascript

May 16, 2016 pm 03:19 PM

localStorage est principalement utilisé pour remplacer les cookies et résoudre les problèmes de difficulté de lecture et d'écriture et de capacité limitée des cookies (veuillez vous référer aux Points clés pour l'utilisation des cookies).

localStorage a les fonctionnalités suivantes

1.localStorage est un objet commun et les opérations sur n'importe quel objet sont applicables.

2. La valeur de l'attribut de l'objet localStorage ne peut être qu'une chaîne.

Cela nécessite une attention particulière. Supposons que nous souhaitions enregistrer un objet dans localStorage. Nous pouvons utiliser le spissage. Comme

var obj = {
"na=me": "chua",
age: 9
}
//拼接到localStorage
var str = "";
for(var i in obj){
str += encodeURIComponent(i) + "=" + encodeURIComponent(obj[i]) + ";"
}
str = str.substring(0,str.length - 1);
localStorage.testObj = str;
//解析出来
var strA = localStorage.testObj.split(";");
var newObj = {};
for(var i = 0; i < strA.length; i++){
var tmp = strA[i].split("=");
newObj[decodeURIComponent(tmp[0])] = decodeURIComponent(tmp[1]);
}
Copier après la connexion

Bien sûr, vous pouvez également utiliser la classe JSON pour convertir l'objet en chaîne et l'enregistrer, puis convertir la chaîne json en un format d'objet json vraiment utilisable lors de sa suppression

3. La taille d'espace par défaut prise en charge par localStorage est de 5 Mo, ce qui est bien pris en charge par les navigateurs modernes

Emprunter la découpe de stockage local HTML5 LocalStorage de xiaowei0705

Script House rappelle à tout le monde de noter que c'est que lorsque vous l'utilisez sur un téléphone mobile, vous devez ouvrir de l'espace mémoire en arrière-plan pour le prendre en charge.

"QUOTA_EXCEEDED_ERR" est une exception Si la capacité de stockage que vous utilisez dépasse la limite (5M), cette exception sera signalée

4.localStorage lui-même a des méthodes

Ajouter une paire clé-valeur : localStorage.setItem(key,value)

Obtenir la valeur de la clé : localStorage.getItem(key)

Supprimer les paires clé-valeur : localStorage.removeItem(key).

Effacez toutes les paires clé-valeur : localStorage.clear().

Obtenez le nom de la propriété (nom de la clé) de localStorage : localStorage.key(index).

Il existe également une longueur de propriété différente des objets ordinaires :

Obtenez le nombre de paires clé-valeur enregistrées dans localStorage : localStorage.length.

L'exemple suivant est utilisé pour obtenir la paire clé-valeur de localStorage

for(var i=0;i<localStorage.length;i++){
console.log(localStorage.key(i)+ " : " + localStorage.getItem(localStorage.key(i)));
} 
Copier après la connexion

Basées sur le principe de confiance dans les méthodes natives, les méthodes natives doivent être utilisées autant que possible pour faire fonctionner localStorage. Cependant, il arrive parfois qu'une étrange erreur QUOTA_EXCEEDED_ERR se produise lors de l'appel de setItem() sur iPhone/iPad. La solution est de supprimerItem() avant setItem. Donc, à en juger par ce problème de compatibilité, il semble que l'utilisation d'objets pour ajouter/supprimer des paires clé-valeur soit plus pratique et plus compatible.

5.événement localStorage

L'événement de stockage de localStorage ne peut pas annuler l'action de stockage dans le gestionnaire d'événement de stockage.

L'événement de stockage est simplement une notification que le navigateur vous envoie après les modifications des données localStorage. Notez que la condition ici est que les données aient réellement changé. En d’autres termes, si la zone de stockage actuelle est vide, l’événement ne sera pas déclenché si vous appelez à nouveau clear(). Ou si vous utilisez setItem() pour définir une valeur identique à la valeur existante, l'événement ne sera pas déclenché. Il sera déclenché lorsque la zone de stockage change. Ceci contient de nombreuses propriétés utiles :

•storageArea : Indique le type de stockage (Session ou Local)
•key : la clé de l'élément modifié
•oldValue : la valeur originale de la clé
•newValue : nouvelle valeur de la clé
•url* : URL où le changement de clé se produit

Remarque : L'attribut url était l'attribut uri dans les premières spécifications. Certains navigateurs ont été publiés plus tôt et n'incluaient pas cette modification. Pour des raisons de compatibilité, avant d'utiliser l'attribut url, vous devez d'abord vérifier s'il existe. S'il n'y a pas d'attribut url, vous devez utiliser l'attribut uri
.

PS : Le stockage et la lecture sont normaux dans Firefox et Chrome, mais il semble y avoir un problème avec le déclenchement des événements de stockage. Chrome peut déclencher l'événement de stockage de cette page en modifiant la propre page de Firefox qui ne déclenche pas la fenêtre. après avoir modifié l'événement de stockage, mais lors de l'accès à A.html et B.html en même temps, l'exécution de setItem sur la page A peut déclencher l'événement de stockage de la fenêtre de la page B. De même, l'exécution de setItem sur la page B peut déclencher l'événement de stockage. événement de stockage de la fenêtre sur la page A. Dans IE9, la valeur de paramètre de la page elle-même peut déclencher l'événement de stockage de la page actuelle, et la valeur de paramètre de la page actuelle peut également déclencher l'événement de stockage d'autres fenêtres de page sous la même "origine". Cela semble plus raisonnable. Par exemple, PrimeTechBlog est recommandé. Le premier essai de WebStorage-localstorage
.

Par conséquent, il est recommandé d'écrire des fonctions de traitement compatibles pour les navigateurs compatibles ou tout simplement de ne pas utiliser l'événement de stockage.

Exemple

if (window.addEventListener) {
window.addEventListener("storage", handle_storage, false);
} else {
window.attachEvent("onstorage", handle_storage);
};
function handle_storage(e) {
if (!e) { e = window.event; }
//响应代码部分 ...
} 
Copier après la connexion

Quelques petits points :

LocalStorage doit être accessible via un nom de domaine pour fonctionner

Si la méthode clear() est appelée, key, oldValue et newValue seront toutes définies sur null.

LocalStorage s'utilise de la même manière

•localStorage - stockage de données sans limite de temps
•sessionStorage - Stockage des données pour une session

localStorage propose plusieurs méthodes :

1. Stockage : localStorage.setItem(clé, valeur)

Si la clé existe, mettez à jour la valeur

2. Obtenez : localStorage.getItem(key)

Si la clé n'existe pas, renvoie null

3. Supprimer : localStorage.removeItem(key)

Une fois supprimées, toutes les données correspondant à la clé seront supprimées

4. Effacer tout : localStorage.clear()

Parfois, il est trop difficile d'utiliser RemoveItem pour supprimer un par un. Vous pouvez utiliser clear, qui effacera toutes les données enregistrées par l'objet localStorage

.

5. Parcourez les clés stockées dans localStorage

.length La quantité totale de données, par exemple : localStorage.length
.key(index) obtient la clé, par exemple : var key=localStorage.key(index);

6. Stocker les données au format JSON

JSON.stringify(data) Convertit un objet en chaîne de données au format JSON et renvoie la chaîne convertie
JSON.parse(data) analyse les données en objets et renvoie l'objet analysé

Remarque : les données stockées dans localStorage ne peuvent pas être partagées entre les navigateurs. Un navigateur ne peut lire que les données de son propre navigateur et l'espace de stockage est de 5 Mo.

Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn

Outils d'IA chauds

Undresser.AI Undress

Undresser.AI Undress

Application basée sur l'IA pour créer des photos de nu réalistes

AI Clothes Remover

AI Clothes Remover

Outil d'IA en ligne pour supprimer les vêtements des photos.

Undress AI Tool

Undress AI Tool

Images de déshabillage gratuites

Clothoff.io

Clothoff.io

Dissolvant de vêtements AI

Video Face Swap

Video Face Swap

Échangez les visages dans n'importe quelle vidéo sans effort grâce à notre outil d'échange de visage AI entièrement gratuit !

Outils chauds

Bloc-notes++7.3.1

Bloc-notes++7.3.1

Éditeur de code facile à utiliser et gratuit

SublimeText3 version chinoise

SublimeText3 version chinoise

Version chinoise, très simple à utiliser

Envoyer Studio 13.0.1

Envoyer Studio 13.0.1

Puissant environnement de développement intégré PHP

Dreamweaver CS6

Dreamweaver CS6

Outils de développement Web visuel

SublimeText3 version Mac

SublimeText3 version Mac

Logiciel d'édition de code au niveau de Dieu (SublimeText3)

Que dois-je faire si je rencontre l'impression de code brouillé pour les reçus en papier thermique frontal? Que dois-je faire si je rencontre l'impression de code brouillé pour les reçus en papier thermique frontal? Apr 04, 2025 pm 02:42 PM

Des questions et des solutions fréquemment posées pour l'impression de billets thermiques frontaux pour le développement frontal, l'impression de billets est une exigence commune. Cependant, de nombreux développeurs mettent en œuvre ...

Qui est payé plus de python ou de javascript? Qui est payé plus de python ou de javascript? Apr 04, 2025 am 12:09 AM

Il n'y a pas de salaire absolu pour les développeurs Python et JavaScript, selon les compétences et les besoins de l'industrie. 1. Python peut être davantage payé en science des données et en apprentissage automatique. 2. JavaScript a une grande demande dans le développement frontal et complet, et son salaire est également considérable. 3. Les facteurs d'influence comprennent l'expérience, la localisation géographique, la taille de l'entreprise et les compétences spécifiques.

Démystifier javascript: ce qu'il fait et pourquoi c'est important Démystifier javascript: ce qu'il fait et pourquoi c'est important Apr 09, 2025 am 12:07 AM

JavaScript est la pierre angulaire du développement Web moderne, et ses principales fonctions incluent la programmation axée sur les événements, la génération de contenu dynamique et la programmation asynchrone. 1) La programmation axée sur les événements permet aux pages Web de changer dynamiquement en fonction des opérations utilisateur. 2) La génération de contenu dynamique permet d'ajuster le contenu de la page en fonction des conditions. 3) La programmation asynchrone garantit que l'interface utilisateur n'est pas bloquée. JavaScript est largement utilisé dans l'interaction Web, les applications à une page et le développement côté serveur, améliorant considérablement la flexibilité de l'expérience utilisateur et du développement multiplateforme.

Comment fusionner les éléments du tableau avec le même ID dans un seul objet en utilisant JavaScript? Comment fusionner les éléments du tableau avec le même ID dans un seul objet en utilisant JavaScript? Apr 04, 2025 pm 05:09 PM

Comment fusionner les éléments du tableau avec le même ID dans un seul objet en JavaScript? Lors du traitement des données, nous rencontrons souvent la nécessité d'avoir le même ID ...

Comment réaliser des effets de défilement de parallaxe et d'animation des éléments, comme le site officiel de Shiseido?
ou:
Comment pouvons-nous réaliser l'effet d'animation accompagné d'un défilement de page comme le site officiel de Shiseido? Comment réaliser des effets de défilement de parallaxe et d'animation des éléments, comme le site officiel de Shiseido? ou: Comment pouvons-nous réaliser l'effet d'animation accompagné d'un défilement de page comme le site officiel de Shiseido? Apr 04, 2025 pm 05:36 PM

La discussion sur la réalisation des effets de défilement de parallaxe et d'animation des éléments dans cet article explorera comment réaliser le site officiel de Shiseido (https://www.shiseido.co.jp/sb/wonderland/) ...

La différence dans Console.Log de sortie Résultat: Pourquoi les deux appels sont-ils différents? La différence dans Console.Log de sortie Résultat: Pourquoi les deux appels sont-ils différents? Apr 04, 2025 pm 05:12 PM

Discussion approfondie des causes profondes de la différence de sortie Console.log. Cet article analysera les différences dans les résultats de sortie de la fonction Console.log dans un morceau de code et expliquera les raisons derrière. � ...

JavaScript est-il difficile à apprendre? JavaScript est-il difficile à apprendre? Apr 03, 2025 am 12:20 AM

Apprendre JavaScript n'est pas difficile, mais c'est difficile. 1) Comprendre les concepts de base tels que les variables, les types de données, les fonctions, etc. 2) Master la programmation asynchrone et les implémenter via des boucles d'événements. 3) Utilisez les opérations DOM et promettez de gérer les demandes asynchrones. 4) Évitez les erreurs courantes et utilisez des techniques de débogage. 5) Optimiser les performances et suivre les meilleures pratiques.

Comment implémenter la fonction de glisser-déposer et de régler la fonction de réglage similaire à VScode dans le développement frontal? Comment implémenter la fonction de glisser-déposer et de régler la fonction de réglage similaire à VScode dans le développement frontal? Apr 04, 2025 pm 02:06 PM

Explorez la mise en œuvre de la fonction de glisser et de réglage du panneau de type VScode dans le frontal. Dans le développement frontal, comment implémenter un VScode comme ...

See all articles