我一直在尝试学习Node.js几天,但有一件事我很困惑。
像JQuery模板这样的客户端模板解决方案和像Jade for Node.js这样的服务器端解决方案有什么区别?
每种用途有何用途?他们在哪里使用?它们可以一起使用吗?如果是这样的话,是否有两个例子一起使用?
我无法理解这一点。很高兴能从周围的人那里得到一些概述...
答案 0 :(得分:29)
关于客户端和服务器端模板应该考虑的最重要的事情是,如果客户端出于某种原因禁用了JavaScript,则客户端模板将无效。
否则它没有那么大的区别。这主要取决于您是想在服务器上还是在客户端上生成标记。
使用客户端模板的一个典型原因是,如果您有一个应用程序使用ajax,websockets等从服务器加载更多数据。在这种情况下,您可能希望拥有一个客户端模板来呈现新加载的数据。
例如:
在我写的应用程序中,我在服务器上使用了ejs模板来生成基本标记:头部,正文,页脚等 - 内容不会改变。
应用程序使用socket.io,它从服务器向客户端发送一些事件和数据。为了显示这些数据,我使用了Knockoutjs的客户端模板。
所以在我的情况下,这是一种混合方法。我这样做的原因是因为我在服务器上生成的标记会在页面加载后立即显示。来自socket.io的数据也可以在服务器上呈现为HTML,但这需要更多的带宽来发送比发送简单的JSON对象等,所以我选择在客户端上呈现它们。
显然我可以在整个网站上使用客户端模板,但我发现在客户端上渲染静态部分没有任何好处。它会让我的应用程序的客户端代码变得更加复杂。