2012-01-16 129 views
12

我一直在尝试学习Node.js几天,但有一件事我很困惑。Node.js:客户端模板v/s服务器端模板

客户端模板解决方案(如JQuery模板)和服务器端解决方案(如Jade for Node.js)有什么区别?

每个的用途是什么?他们在哪里使用?它们可以一起使用吗?如果有的话,他们两个人是否有过检查?

我只是无法得到我的头。很高兴有关于这里的某个人的事情的概述...

回答

27

客户端与服务器端模板应该考虑的最重要的事情是,如果禁用了JavaScript,客户端模板将不起作用客户出于任何原因。

否则它没有这么大的差别。这主要取决于您是要在服务器上还是客户端上生成标记。

使用客户端模板的典型原因是,如果您有一个应用程序使用ajax,websockets等从服务器加载更多数据。在这种情况下,您可能想要使用客户端模板来渲染新加载的数据。

例如:

在应用程序中我写的,我用的服务器EJS模板来生成基本标记:头部,身体,页脚,等等 - 这不会改变的内容。

该应用程序使用socket.io,它向客户端发送来自服务器的一些事件和数据。为了显示这些数据,我使用了Knockoutjs的客户端模板。

所以在我的情况下,这是一种混合的方法。我这样做的原因是因为我在服务器上生成的标记会在页面加载后立即显示。来自socket.io的数据也可以在服务器上呈现为HTML格式,但这需要更多的带宽来发送,而不是发送简单的JSON对象等,所以我选择在客户端上呈现它们。

很明显,我可以在整个网站上使用客户端模板,但是我在客户端上看到没有任何好处。这只会让我的应用程序的客户端代码更加复杂。