2012-12-23 1 views
4

Depuis 8 mois, je développe une application qui utilise Smarty pour les templates PHP.Utilisation de Smarty ou Backbone.js pour taper javascript

Je n'ai eu aucun problème avec Smarty, et j'ai commencé à ajouter plus d'interactions JavaScript pour les utilisateurs sur le site.

Je pensais utiliser backbone.js pour modéliser le JavaScript.

Mais une autre idée m'est venue, serait-il une mauvaise idée de retourner un template smarty et de le charger dans la div plutôt que de retourner un json et d'utiliser backbone.js pour formater les résultats?

Est-ce que cela ralentirait l'application de toute façon? Quels sont les avantages (le cas échéant) et les inconvénients de faire cela?

Toute pensée serait grande,

Merci

+1

Peut-être, peut-être pas. Cela dépend des détails (comme d'habitude). –

+0

Jetez un coup d'œil à [jSmart] (http://code.google.com/p/jsmart/), peut-être que cela correspond à vos besoins. "Le moteur de template JavaScript, port du moteur de template PHP Smarty to Javascript, vous permet d'utiliser les mêmes templates pour PHP et JavaScript, tant sur le serveur que sur le client." – noisebleed

+1

Pour élaborer sur le commentaire de muistooshort. Les modèles côté client (en utilisant Backbone) sont nécessaires pour les applications d'une seule page, facultatif sinon. De même, les modèles côté serveur (Smarty) sont nécessaires pour les applications Web traditionnelles, facultatif sinon. L'utilisation de modèles sur le client et le serveur ne * ralentit * pas l'application, mais bien sûr, la maintenabilité de l'application prend un coup, car vous dupliquez du code ... non? – McGarnagle

Répondre

3

Avec un "site web" multi-page normale, les utilisateurs à naviguer d'une page à consommer les fonctionnalités du site. Backbone fonctionne cependant mieux avec un modèle "application web" d'une seule page. Avec cette approche, la seule page html chargée est la première; après cela, chaque "transition de page" est en fait traitée par Backbone's Router, qui simule les transitions de pages dynamiquement via la manipulation DOM. Les éléments de chaque nouvelle page sont à leur tour construits à partir de Backbone Views; Le HTML généré par PHP n'est jamais impliqué.

Et c'est pourquoi Backbone n'est peut-être pas le meilleur choix pour vous. Sauf si vous voulez changer votre code PHP pour qu'il soit purement une structure de style API côté serveur (qui n'aurait pas vraiment besoin de Smarty), une grande partie de la valeur de Backbone va être perdue.

Questions connexes