在服务器端渲染模板是否有意义?

时间:2011-12-16 23:02:30

标签: express pug

我正在学习与Express捆绑在一起的模板引擎Jade。据我了解,Jade允许服务器端呈现。由于两个原因,这不是次优的:

1)服务器必须计算更多才能呈现模板。这项工作可以在客户端推动。

2)一旦渲染了模板或部分,并且数据需要更新,它只是将JSON发送到客户端,而不是重新发送完全成熟的HTML,这是带宽消耗。

这是服务器端模板渲染的真正问题吗?

2 个答案:

答案 0 :(得分:8)

我认为这实际上取决于您正在编写的应用程序类型。如果您的页面主要服务于单个页面,并且适合您典型的CRUD / MVC模具,则可能不是问题。但是,如果你用大量的ajax编写动态的东西,那就是一个问题:-)

我感觉到你的痛苦 - 我在各种堆栈中被这几次咬过。我最终只是在核心页面加载后执行的浏览器中使用异步调用执行所有列表绑定。它有点臭,因为你喜欢第一个请求带有一个预绑定列表数据页面,但后续页面由ajax调用驱动。我只是不想为服务器写一次模板,为客户端写一次。

我不认为/ Jade支持那种客户端绑定。好消息是,有一些流行的模板语言可以在服务器和浏览器中运行。我所知道的两个是:

我没有看到任何人使用带快递的盘子,因为它属于flatironjs项目,它有自己不断增长的框架。有大量的例子使用胡须和ejs表达:

在旁注中,这是Joyent网站上节点的模板包列表:

https://github.com/joyent/node/wiki/modules#wiki-templating

我的建议是从EJS开始 - 它更加脚踏实地,它的非HAML式语法,支持客户端和服务器绑定,并且似乎在快速堆栈中被广泛接受。

快乐的编码!

答案 1 :(得分:1)

还有一点很重要。取决于您的网站目标。你可能不得不关注SEO。

简单来说,从服务器生成的内容是由搜索引擎索引的。别人没有。因为搜索引擎抓取工具不会关注客户端内容。