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

我正在调查Backbone JS,并有点困惑。 我习惯于在服务器端编译我的页面html( 使用JADE ),然后在客户端使用jQuery与这些元素进行交互。 很多主要的示例都提示从一个空白的html主体开始,并在客户端呈现内容。

这对我来说真是太奇怪了!

问题:

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

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

使用Backbone的典型方式是做客户端的事情。 您使用客户端模板呈现将模型值绑定到您的小视图模板。 这是一种将HTML / JS转化为具有实际组件模型的应用程序开发平台的方法。

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

例如,我使用Rails的Backbone。 我的Rails视图呈现包含主干逻辑/视图的服务器端HTML。 然后,我所有的AJAX风格的视图渲染都是通过使用Backbone与模型,视图和模板来实现的,而这些模型与位于Rails后端的JSON服务交谈。 用户在他们需要离开页面去做别的事情之前,看不到页面加载。 经验相当不错。

你当然可以采取这个例子,并在服务器端渲染你的模板。 我不会尽可能渲染模板服务器端的每个实例,因为模板引擎(包括内置到Backbone / Underscore的模板引擎)function非常强大。 但是,如果你想用你的服务器端渲染的模板,我可以看到如何可能是有用的。