我的web应用程序使用服务器端的Smarty模板系统来生成内容。我的应用程序会使用很多AJAX交互。我不想在服务器端生成内容,而是每次向客户端发送html数据,我只想从服务器发送JSON,然后将数据与客户端的Smarty模板绑定。smarty模板引擎可以用来在客户端创建模板吗?
这对于将模板缓存在客户端的方式非常有帮助,然后我可以在每次AJAX交互中重复使用它,因为那样我就可以只从发送JSON数据(而不是整个HTML)服务器,我可以在实际下载的数据上节省很多。
我知道小胡子模板引擎可以做到这一点,因为它是语言不可知的,但是可以用Smarty来做到这一点吗?
我不想要的是做这样的事情在JS
for (var i in foo) {
html += '<div class = "myClass">foo[i].bar</div>';
}
Y.one('#myDiv').set('innerHTML', html);
相反,我要的是有模板DIV的这个模板,然后只需将数据分配到模板
不应该你的JS层处理那些东西吗? – JohnP 2011-03-29 08:05:00
使用占位符的问题在于它仅适用于简单的数据,如变量。但是如果我也有逻辑参与,例如一个循环,一个条件部分等,占位符将不会很好。然后,我将再次在JS中为上述场景编写我的模板,这将破坏将View与其他部分分开的MVC目的 – Ankit 2011-03-29 08:06:04