I recent came across Javascript templates and have become quite intrigued.
I am building a large PHP application using the MVC pattern. Templating is handled by the rather awesome Twig.
I recently came across a javascript implementation of twig.
I have also read quite a bit about using javascipt template engines.
Now, in my application, the application generates a the full page for standard requests as fallback for users without javascript. For AJAX requests, it can generate the content part of the page (no <head>, <body> etc).
The ajax response object is currently just a the rendered HTML content, which is then inserted into DOM.
Should I instead return a response object containing a compiled javascript template and the objects to be inserted into the template? What are the benefits of doing that?
From the posts I have read, the javascript templates were only small snippets representing a small part of a page, for example displaying a comment on a blog post during the instant that the user has submitted it.
Are javascript templates only useful for inserting these sort of small “pieces” in a page?
Yes
A recent project I was on got “client-side template fever” and we used the dang things for every single template.
With every template library I’ve used (which is two or three), the error messages you get are not very good. If you have a huge template that operates on a fair amount of data, you’ll quickly find the
u.foo is null or not an objecterror message increasingly frustrating.The best-practices I’ve settled on is:
PS: It is cool that both your client and server-side templates could use the same templating engine. This will make developers on your project much more productive.