Zilele astea, mai mult de nevoie dar și de curiozitate am căutat un motor de template-uri în javascript. Probabil mulți sunteți familiarizat cu template engine-uri în PHP, cum e Smarty de exemplu. Eh, trebuie să vă spun că niciodată nu mi-au plăcut template engine-urile pentru PHP de vreme ce PHP însăși e un astfel de motor ;) .
Dar template engine-urile în Javascript chiar încep să îmi placă. De ce?
Desigur nu sunt o alegere viabilă pentru un sait pe internet, care trebuie să aibă link-uri către pagini individuale pe care motoarele de căutare să le poată parsa, de vreme ce motoarele de căutare nu înțeleg javascript. Da googlebot știe să citească și PDF-uri sau SWF-uri dar javascript nu.
Însă cred că sunt cea mai bună alegere pentru un sait într-un intranet, sau unul cu acces limitat la conturi (utilizator/parolă). Asta pentru că un astfel de engine îți permite să iei doar datele de care are nevoie clientul de pe server, nu și markup-ul iar template-ul să-l iei dintr-un fișier static în timp ce prelucrarea lui și înlocuirea variabilelor se face pe mașina clientului, care e foarte probabil să aibă mai mulți RAMi disponibili decât serverul tău. Și tu ca programator nu mai trebuie să înveți Smarty dacă știi deja PHP/JavaScript.
Partea cea mai bună e că aveți de unde alege, iar unul dintre inițiatorii curentului este chiar John Resig :
- vkTemplate: ușor de implementat, bazat pe jQuery iar funcționalitatea sa de bază e că ia datele dintr-un string JSON și le înlocuiește în fișierul template: http://www.eslinstructor.net/vktemplate/
- mustache: este implementarea javascript a motorului mustache: https://github.com/janl/mustache.js/, http://mustache.github.com/ .
- jSmart: un Smarty în JavaScript: http://code.google.com/p/jsmart/
- BabaJS: la fel de practic dar cu o sintaxă asemănătoare cu PHP: https://github.com/mrharel/babajs
Desigur lista ar putea continua, dar acestea sunt cele pe care le iau eu în considerare bazate pe caracteristicile de compilare și caching. Dar sunt curios ce preferințe aveți și voi?