Spécifier la valeur par défaut pour le Stockage Local HTML5 article?
Dans le cas où vous essayez d'obtenir un local de stockage de l'élément qui n'existe pas, est-il possible de définir une valeur par défaut pour cet article?
Par exemple, disons que dans votre application web, diverses de l'INTERFACE utilisateur, les préférences sont sauvegardées dans le stockage local. Lorsqu'un utilisateur quitte votre site web et ensuite, l'INTERFACE utilisateur est mis en place selon les valeurs tirées de leur local de stockage. Cela fonctionne très bien.
Toutefois, lorsqu'un utilisateur visite votre application web pour la première fois, les locaux de stockage des valeurs n'existent pas encore. Ainsi, lorsque votre JavaScript tentatives pour obtenir ces local éléments de stockage, ils vont tous être indéfini. N'est-il pas un moyen de spécifier des valeurs par défaut pour chaque local de stockage de l'élément dans le cas où il n'existe pas?
La plupart des langages de programmation qui traitent de l'économie de paires clé/valeur offrent une sorte façon de spécifier des valeurs par défaut (pensez .ini fichier de configuration des interfaces). Je m'attendais à quelque chose comme ceci:
var preference = localStorage.getItem('some-key', 'Default Value');
Aussi, je sais que je peux facilement par programme définir les valeurs par défaut en essayant de voir si ils sont nuls/non défini ou non, et de définir la valeur en conséquence, mais je voulais voir si c'était intégré dans le local de stockage paire clé/valeur de la récupération et que peut-être je n'étais tout simplement pas le voir. Si cette fonction n'existe pas, je finirai juste l'écriture de certains locaux de stockage des fonctions wrapper qu'ajouter à cette fonctionnalité.
OriginalL'auteur Jake Wilson | 2012-12-09
Vous devez vous connecter pour publier un commentaire.
Non, il n'y a pas une telle fonctionnalité intégrée. Voir les spécifications du
Stockage
de l'interface:Et la ligne suivante juste pour confirmer que d'autres:
Vous pouvez simplement utiliser les techniques habituelles. Quelque chose comme cela devrait être bon:
Oui, mais à partir de la question, je suppose que l'absence d'une valeur, par exemple une chaîne de caractères vide, nécessiterait la valeur par défaut 🙂
OriginalL'auteur James Allardice
La solution de James:
Ne fonctionne que si vous n'avez jamais enregistrer des chaînes vides OU des booléens OU si votre variable peut être 0.
Solution qui est plus long, mais qui fonctionne toujours:
Si l'on prend en compte le fait que tout vous stockez dans localStorage est stocké comme un string, James solution est correcte, et bien de retour "false" et "0". J'ai bien aimé votre observation sur le fait d'être conscient de la façon dont la chaîne vide scénario est en cours de traitement. Je pense que les deux de vous et de ses solutions sont tout aussi valables, et lequel choisir dépendra du contexte et de préférence.
OriginalL'auteur Mathieu Bulliot
Vous pouvez utiliser cette méthode pour les objets
Et voici quelques exemples de sorties:
OriginalL'auteur Roei Bahumi