何时使用后端模板引擎以及何时使用前端模板引擎?

时间:2014-07-03 16:38:05

标签: javascript template-engine templating client-side-templating

大多数传统的MVC框架都包含自己的模板解决方案(Jinja2,Mako等)。如果决定使用其中一个新的ui框架,如角度或骨干,他们似乎鼓励使用前端模板解决方案。

性能有什么不同吗?两种方式的优点和缺点是什么?在使用某些js模板解决方案时,ie或其他浏览器是否存在问题?

2 个答案:

答案 0 :(得分:3)

我对此的看法很简单,真的。

如果要模拟网站的结构,请使用服务器端模板引擎。如果要模拟站点的数据,请使用客户端模板引擎。使用两者都没有错,只要它们没有大量的竞争令牌。

一个非常常见的例子是使用ASP.Net MVC使用剃刀模板引擎管理大量网站结构,并使用诸如Angular.js之类的JavaScript客户端库来简化各个页面上的数据结构。

答案 1 :(得分:1)

根据具体情况,一个主要因素可能是带宽使用量发生重大变化。

例如,我的最新项目包括在聊天(和其他地方)中使用颜色代码的功能。这些代码如下:

`1blue `2green `3yellow `4red `bbold on `Bbold off `b`iBold Italic...

可以解析此服务器端并返回:

<span style="color:blue">blue </span><span style="color:green">green</span>...

但是看看我怎么只做了两个单词而且我已经比源文本更长了!相反,我选择在前端使用JavaScript实现解析器。这需要大量处理服务器(否则必须为每个用户解析这些东西)到客户端(只有一个用户正在处理)。

它还有一个优点,就是我可以通过插入同一个解析器来实现实时预览,但这与此无关。

此外,可以缓存客户端模板,从而进一步减少需要发送的数据量。这对于可能没有无限数据的移动用户尤其有利(那些穷人......我为他们哭泣......不是真的)

就个人而言,如果有选择,我强烈推荐客户端模板(虽然以我惯用的方式,我会避开所有预先制作的解决方案并制作我自己的XD,我很奇怪),以获得各种性能原因。显然,主要的缺点是“没有JavaScript =没有网站”,但我很好,因为整个网站都依赖于JS ...