大多数传统的MVC框架都包含自己的模板解决方案(Jinja2,Mako等)。如果决定使用其中一个新的ui框架,如角度或骨干,他们似乎鼓励使用前端模板解决方案。
性能有什么不同吗?两种方式的优点和缺点是什么?在使用某些js模板解决方案时,ie或其他浏览器是否存在问题?
答案 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 ...