客户端模板有什么好处(像胡子一样)

时间:2012-11-07 14:08:03

标签: mustache templating client-side-templating

为了避免编写为动态页面手动生成HTML的JavaScript代码(这不仅是丑陋的,而且根本不是DRY),并且考虑到简单和优雅(与性能相反),有什么优点。在客户端上使用基于字符串的模板,例如Mustache.js或Handlebars.js,单独检索json数据和模板,使用REST API检索服务器端呈现的html片段?

我的印象是客户端模板是在动态页面上保持简单的最佳方法,但在使用它之后我发现维护这样的页面有点复杂,并且它的主要部分优点是更好的性能和带宽使用,这通常不是我的主要目标。

1 个答案:

答案 0 :(得分:0)

我目前正在使用Twitter的Hogan库,在此之前我使用的是Trimpath库。我是客户端模板的忠实信徒;但他们不应该被滥用。以下是一些论点:

  1. 与服务器端模板一样,它有助于区分应用程序逻辑和表示。不是在运行时手动创建DOM元素的层次结构,而是使用HTML定义模板并使用javascript中的数据呈现它,从而创建更可读和更优雅的代码。

  2. 我觉得拥有重复层次结构的客户端模板很实用,例如推特帖子,博客条目,新闻文章等......服务器只发送JSON数据,(大部分时间通过AJAX调用) ),数据可以立即绑定到模板。

  3. 模板引擎我使用生成的HTML字符串更新innerHTML。据说这比DOM操作更快,但我自己从未运行过基准测试。

  4. 桌面应用程序和RIA可以从客户端模板中获益很多。他们可以在不依赖第三方解决方案的情况下驱动其接口。

  5. 我们可以在项目中轻松拥有服务器端模板和客户端模板。他们可以很好地合作。在Web项目中,我不建议我们应该将模板移植到客户端,只从服务器发送数据。例如,我使用带有INCLUDE语句的服务器端模板来构建整个页面。一个模板可以包括另一个模板结构来构建接口。 对于客户端模板而言,这是一项复杂的任务,只会产生不必要的代码和开销。