如何选择Javascript模板引擎(javascript template engine)

[img]http://dl2.iteye.com/upload/attachment/0089/0084/e7637020-79cc-3a20-9eed-8a2091b878d6.jpg[/img]
[size=medium]
随着前端开发的密集度越来越高,Ajax和JSON的使用越来越频繁,大家肯定免不了在前台开发中大量的使用标签,常见到的例子如下:

你得到了一个JSON对象,如下:
[/size]
var data={
email: '[email protected],
gender: 'male'
}
[/code][size=medium]
然后你需要将json数据组织成页面内容,如下:
[/size][code="">
var email, gender;
email= '
' + data.email+
';
gender= '
' + data.gender +
';
$('#contentwrapper‘).append(content).append(gender);
[size=medium]代码执行功能非常简单,将json数据生成web页面中的内容,如下:[/size][code=""]

Male

[/code][size=medium]
如果只是简单代码组合可能还好一些,但是如果页面大量使用类似的结构的话,除非一直是同一个程序员维护,否则后期的管理成本会相对非常的高。

为了解决这个问题, 我们通常会引入"javascript模板引擎概念“,提到模板,相信大家都不会陌生,如果你开发过服务器端程序,例如J2EE相关技术的话,肯定对于Freemarker,sitemesh等模板类库非常熟悉,它能够有效的帮助你组织和维护代码结构,提高代码编写效率和降低维护成本。

目前开源的javascript模板引擎很多,抛给我们的问题是 - 如何选择一个js模板引擎?

为了更好的帮助大家辅助选择模板引擎,这里推荐一个不错的工具性网站:[url]http://garann.github.io/template-chooser/[/url]

打开这个网站后,我们可以看到列出了比较常用的js模板引擎,例如,mustache.js,jQuery之父John 的micorotemplate.js,还有jQuery Tmpl的替代品 - jsrender等等。

在类库列表的左边是一系列的问题,如下:

模板需要在客户端使用还是服务器端?
逻辑复杂程度有多少?
是不是有运行速度要求?
是不是需要预定义的模板?
需要Partials支持吗?
需要DOM结构或者String字符串类型?
除了模板标签,是不是在渲染前后开发语言一致?
如果你也在寻找js模板的话,你肯定也有一些问题,或者就是上面列出的问题里。你只需要针对不同的问题回答:是或者不是,这个工具会自动选择合适的模板。

当然,这里的模板并不是很全,但是包含了比较知名的模板,希望以后它能够添加更多模板选择项。

[/size]

你可能感兴趣的:(MVC)