前端模板与后端模板

时间:2015-01-03 21:35:57

标签: angularjs node.js handlebars.js pug templating

为什么客户端和服务器端都有模板引擎?在服务器端处理路由是不是很自然?在什么情况下最好在服务器端进行路由和模板化?在客户端?是否有你想要同时使用它们的情况?

我环顾四周,但我发现的任何内容都没有以简单的方式解释这一点。我想我错过了一些东西。

谢谢!

2 个答案:

答案 0 :(得分:4)

让我逐一提出你的问题:

为什么客户端和服务器端都有模板引擎? 简单,减少服务器端的负载!想象一下,成千上万的用户请求服务器端引擎(我称之为web / app服务器),所有请求都是从服务器集群处理和提供的(以主机为代价)。相信我,从服务器的角度来看,这是非常昂贵的。另一种选择是仅向提供表示逻辑的客户端引擎提供数据。由于它是客户端中的单个用户数据/逻辑,因此它重量轻且速度快。关键是它减少了服务器上的负载。

在服务器端处理路由是不是很自然? 这不仅是自然的,而且是服务器端必须做的(开始)。但是,正如所解释的那样,在客户端执行表示逻辑可以使用户体验更好。这就是像AngularJS这样的客户端框架的单页应用程序的出现!

在哪些情况下最好在服务器端进行路由和模板化? 术语模板不用于服务器端。但是,演示模板(布局和组件)主要在客户端完成,功能模板(数据)在服务器端。服务器端模板只是Web服务(API)。

在客户端? 如上所述,所有表示层内容(HTML,CSS,JavaScript)。

是否有两种情况需要同时使用? 我会说,在所有情况下。但是,最好的候选人是门户网站,而不是网站。

希望我理解你的问题,我的答案也很有用。

答案 1 :(得分:1)

使用像Angular这样的SPA框架,您只需渲染一次HTML,并依赖Web API调用来检索数据并将其绑定到视图。由于Web API调用返回JSON模型,因此需要使用前端模板在视图中呈现模型。

您将依赖服务器端路由和模板来呈现初始页面,以及客户端路由和模板化以用于任何后续用户交互(即通过Web API调用检索数据)。