templates - 我应该在服务器端还是客户端呈现 html?

标签 templates node.js backbone.js express

我正在研究 Backbone JS 并且有点困惑。我习惯于在服务器端(using JADE)编译我的页面 html,然后在客户端使用 jQuery 与这些元素进行交互。许多主干示例建议从空白 html 正文开始并在客户端呈现内容。

这对我来说真的很奇怪!

问题:

  1. 我必须使用客户端模板吗?

  2. 我可以使用 BackboneJS 来控制预先编写的服务器端编译的 html 吗?

最佳答案

使用 Backbone 的典型方式是在客户端做事。您使用客户端模板渲染将模型值绑定(bind)到您的小 View 模板。它是一种将 HTML/JS 转变为具有实际组件模型的应用程序开发平台的方法。

但是,这并不意味着你不能或不应该混合你的世界。

例如,我将 Backbone 与 Rails 一起使用。我的 Rails View 呈现包含 Backbone 逻辑/ View 的服务器端 HTML。然后,我所有的 AJAX 样式的 View 渲染都使用带有模型、 View 和模板的 Backbone 进行,并且模型与位于 Rails 后端的 JSON 服务通信。用户在需要离开页面去做其他事情之前不会看到页面加载。体验非常好。

您当然可以举这个例子并在服务器端呈现您的模板。我不会去渲染模板服务器端的每个实例,因为模板引擎(包括内置在 Backbone/Underscore 中的引擎)非常强大。但是,如果您想使用服务器端渲染为您的模板播种,我可以看到这可能很有用。

关于templates - 我应该在服务器端还是客户端呈现 html?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7738345/

相关文章:

c++ - 将函数作为模板参数传递给成员函数

node.js - TeamCity + Node.JS 持续部署

javascript - 一起使用 for 循环和异步 waterfall 的最佳方式

javascript - 主干解析ajax响应函数没有被调用

javascript - 无法通过backbone.js通过嵌套循环插入模板

c++ - 确定比较中文字的有效类型

c++ - 如何子类化模板化基类?

c++ - 是否存在近似等同于运行时#ifdef 的C++ 编程技术?

javascript - 从 MongoDB 驱动程序调用 getUsers() 函数

javascript - 为什么 Backbone.Collection 对第一个查看者显示两次?