javascript - Node.js:客户端模板与服务器端模板

标签 javascript jquery node.js template-engine

我这几天一直在尝试学习 Node.js,但有一件事情我很困惑。

像 JQuery 模板这样的客户端模板解决方案和像 Jade for Node.js 这样的服务器端解决方案有什么区别?

每种都有什么用途?它们在哪里使用?它们可以一起使用吗?如果有的话,有没有一起使用的例子?

我无法理解这一点。很高兴能从这里的某个人那里了解一下事情的概况...

最佳答案

关于客户端模板与服务器端模板最重要的一点是,如果出于某种原因在客户端禁用了 JavaScript,则客户端模板将无法工作。

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

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

例如:

在我编写的一个应用程序中,我使用服务器上的 ejs 模板来生成基本标记:头部、正文、页脚等 - 不会改变的内容。

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

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

显然我可以为整个网站使用客户端模板,但我发现在客户端上呈现静态部分没有任何好处。它只会使我的应用程序的客户端代码更加复杂。

关于javascript - Node.js:客户端模板与服务器端模板,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8876168/

相关文章:

javascript - 从 javascript 代码在 DOM 中添加外部脚本

Javascript 和 HTML 似乎无法正常工作

node.js - 咕噜初始化:node not working

javascript - jquery简单交换p元素?

javascript - Angular 重置下拉值 primeng

javascript : interpolate an array of numbers

javascript - 如何从脚本内获取 document.currentscript 并指向parentNode

jquery - 为什么带有 .resize() 的这段代码在 jquery 中不起作用?

javascript - 我想在node js中编写一个10秒后退出的计时器程序。但我在 10 点后得到连续输出。请更正我的代码

javascript - 如何正确使用嵌套异步代码?