Les meilleures pratiques pour le Stockage de JSON dans le DOM
Je veux rendre certaines données json à l'aide de gabarit HTML.
Je n'ai pas commencé à mettre en œuvre encore rien, mais je voudrais être en mesure de "définir" les valeurs de données à partir de json à l'élément html qui contient le modèle pour un enregistrement, ou de rendre un ensemble d'éléments à l'aide d'un argument qui est modèle html pour chaque article, mais aussi pour être en mesure d'obtenir JSON l'objet dans le même format que la source JSON qui a été utilisé pour effectuer le rendu d'élément (je veux ma première JSON pour contenir plus d'informations sur le comportement de la ligne d'enregistrement, sans le besoin de faire une requête ajax pour vérifier si l'utilisateur peut ou ne peut pas faire quelque chose avec ce disque, et pas tous de cette info est visible dans le modèle).
Je sais que je puisse prendre forme cachée avec un élément d'entrée pour chaque propriété d'un objet en magasin, et mappeur de la fonction/du JSON, mais ça à l'air exagéré pour moi, et je n'aime pas ça, je veux bien quelques légers "enveloppe".
Je me demandais est-il une librairie JS qui permet de sérialiser" et "désérialiser des" objets JSON en html donc je peux le stocker quelque part dans les DOM (c'est à dire dans l'élément qui contient l'affichage pour les données, mais je veux être en mesure de stocker des attributs supplémentaires qui n'ont pas à être présentés comme éléments de formulaire)?
Mise à JOUR Comme première réponse a suggéré de stockage de JSON dans une variable globale, j'ai aussi pensé à ce sujet, et mon "meilleur" mentale solution était de le faire en JavaScript (module ou plugin jQuery) qui permettrait de faire "cartographie" de JSON, html, et si pas possible de stocker des valeurs dans le html alors il peut les stocker dans la variable interne, si j'ai besoin de "récupérer" les données à partir de l'élément html il peut tirer de sa copie locale. Je veux savoir est-il une meilleure façon pour cela? Si il y a une bibliothèque qui stocke ces informations dans une variable, mais en temps réel "" liaison de données avec le html, je serais très heureux.
Mise à JOUR 2 maintenant Cela est fait en utilisant http://knockoutjs.com/, pas besoin de continuer json dans les DOM plus, knock-out ne le JSON<=>HTML cartographie automatiquement
OriginalL'auteur Goran Obradovic | 2011-09-23
Vous devez vous connecter pour publier un commentaire.
Pourquoi ne pas le stocker comme prévu par la nature: comme un objet javascript? Le DOM est une horrible endroit.
Cela dit, jQuery a la méthode de données qui permet tout cela.
Bien: "de jQuery 1.4.3 HTML 5 attributs data - sera automatiquement tiré à jQuery de données de l'objet." Donc, oui.
Grande, alors je pense que c'est le mieux que je peux obtenir ce dont j'ai besoin. Et ce qui est pire, je savais à propos de ce $("..").les données de knockout.js les démos, mais il n'a pas eu lieu pour moi maintenant 🙂
Telerik grille utilise également la méthode de données pour stocker des données de réseau, alors, imaginez que je vous ai donné un autre +1 🙂
OriginalL'auteur graphicdivine
Si vous voulez garder une référence pour les données JSON qui a créé votre DOMFragment à partir d'un modèle?
Disons que vous avez un modèle de fonction qui prend un modèle et des données et renvoie un nœud DOM.
Vous pouvez stocker l'original json sur le jeu de données d'un nœud. Vous pouvez avoir besoin d'un dataset cale bien.
Il n'y a également aucun moyen de "carte", JSON, HTML, sans l'aide d'un moteur de template. Même alors, vous devez stocker le nom du modèle dans le json de données (méta-données) et qui se sent moche pour moi.
OriginalL'auteur Raynos
Je l'ai fait dans le passé aussi bien dans un couple de différentes manières.
La
$('selector').data
idée est probablement l'un des plus techniques utiles. J'aime cette façon de stocker des données, parce que je peux stocker les données dans une logique, intuitive et de façon ordonnée.Disons que vous avez un appel ajax qui récupère les 3 articles sur le chargement de la page. Les articles peuvent contenir des données concernant le titre, la date, l'heure, la source etc. Nous allons supposons que vous vouliez afficher les titres, et quand un titre est cliqué, vous voulez montrer l'intégralité de l'article et de ses détails.
Pour illustrer le concept un peu disons-nous récupérer json à la recherche de quelque chose comme:
À partir d'un appel ajax comme ça . . .
L'idée étant, nous pouvons stocker des données associées à un élément du dom et de l'accès/manipuler/supprimer que les données à une date ultérieure en cas de besoin. Cette coupe vers le bas sur les appels de données et efficacement les caches de données à un élément du dom.
à tout moment après le lien du titre est ajouté au document les données peuvent être accessibles par le biais d'un sélecteur jquery. Pour accéder à l'article de données pour la première fois en tête:
L'accès à vos données par le biais d'un sélecteur et un objet jquery est sorta soigné.
Je ne suis pas sûr que sur le fonctionnement interne de l'il, mais c'est un excellent outil à avoir dans votre arsenal de techniques si vous travaillez avec des données de sites web. Voici le lien pour le jquery documentation api.jquery.com/data
Oui, c'est la même technique que suggéré par @graphicdivine, je n'ai pas vérifié, mais je pense que les magasins de propriétés de données-propertyName (ou quelque chose comme ça) attributs html.
OriginalL'auteur Allen Tellez
Je ne pense pas qu'il y a des bibliothèques qui magasin de json dans le dom.
Vous pourrait rendre le code html en utilisant les données json et de conserver une copie de cette json variable comme une variable globale en javascript.
OriginalL'auteur Mircea Soaica