2012-10-03 4 views
3

Je suis en train de coder un tableau de bord d'une application Web-CMS en utilisant Backbone.js et plusieurs plugins jQuery. Ce tableau de bord devrait être aussi intuitif et personnalisable que possible et très extensible à la fois. Maintenant, ce que je veux faire, est de charger les données d'un widget et son modèle par une API via ajax. En fait, ce n'est pas un problème mais je voulais vous interroger sur une bonne pratique pour charger des données de modèles (HTML/javascript/etc ...) avec javascript via ajax.Ajouter dynamiquement des widgets à un tableau de bord en utilisant backbone.js et jquery

Je pourrais effectuer plusieurs appels ajax où je reçois d'abord un extrait html avec le modèle, puis charge ses données dans une deuxième requête en tant que chaîne JSON.

// first request 
<h6>Some HTML Stuff here</h6> 
// second request 
{"id": "5", "name": "Example Widget"} 

Ou je pouvais stocker le modèle lui-même dans une chaîne JSON de l'autre côté serveur réduirait la charge mais se sent sorte de mal.

// single request 
{"id": "5", "name": "Example Widget", "template": "<h6>Some HTML stuff here"</h6>"} 

Des suggestions ou d'autres méthodes?

+0

Pouvez-vous pas inclure les modèles dans votre application en utilisant l'une des nombreuses options de matriçage côté client (par exemple un trait de soulignement guidon, etc.), et seulement demander les données au lieu des données et modèle? –

+0

@MattiJohn J'aurais dû préciser que je voulais que les widgets agissent comme une sorte de modules que vous branchez sur le backend du serveur. Les widgets et le script de tableau de bord sont donc séparés. Pas moyen de les inclure dans le script. – Bubinsk

Répondre

2

La méthode de demande 2 est celle que j'ai personnellement utilisée lors de la configuration. La surcharge pour l'appel séparé ne valait pas la peine d'essayer de traiter les données dans le navigateur. Si vous souhaitez vraiment minimiser le nombre d'appels, la combinaison des réponses JSON sera probablement la méthode la plus efficace.

Je vous recommande d'utiliser require.js, car il gère la plupart de ces opérations pour vous.

http://backbonetutorials.com/organizing-backbone-using-modules/

+0

Ok, mais n'est-ce pas contre les "règles" JSON de stocker html réel dans une chaîne JSON? J'ai trouvé un plugin de template JSON pour jquery [ici] (http://json2html.com/). Mais cela ne semble pas très intuitif non plus. – Bubinsk

+0

Le code HTML serait stocké dans un fichier séparé et un moteur de modèle combinerait les deux. Puisque vous utilisez backbone je recommanderais la fonction de modèle de soulignement. Le moteur de template que vous utilisez est définitivement une préférence, il n'y a pas de "meilleur". http://underscorejs.org/#template – Dcullen

Questions connexes