我应该在服务器端还是客户端渲染html?

时间:2011-10-12 10:03:00

标签: templates node.js backbone.js express

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

这对我来说真的很奇怪!

问题:

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

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

1 个答案:

答案 0 :(得分:16)

使用Backbone的典型方法是在客户端执行操作。您可以使用客户端模板呈现将模型值绑定到小视图模板。这是一种将HTML / JS转换为具有实际组件模型的应用程序开发平台的方法。

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

例如,我使用Backbone和Rails。 My Rails视图呈现包含Backbone逻辑/视图的服务器端HTML。然后,我使用Backbone与模型,视图和模板进行所有AJAX风格的视图渲染,模型与生活在Rails后端的JSON服务进行通信。在用户需要离开页面执行其他操作之前,用户不会看到页面加载。经验非常好。

您当然可以采用该示例并在服务器端呈现模板。我不会去渲染模板服务器端的每个实例,因为模板引擎(包括内置于Backbone / Underscore中的引擎)非常强大。但是,如果你想用服务器端渲染来模拟你的模板,我可以看到它可能有用。