使用node.js和backbone.js将单页面应用程序转换为多页面网站

时间:2014-01-21 13:45:28

标签: javascript html node.js backbone.js requirejs

我已经构建了一个网站,其中内容正在动态传输,nodejsexpressjsjade模板引擎,后端提供REST API和{{1}使用前端的backbone.js模板使用require.js进行管理。

内容类似于问题和解答或关于产品的评论帖子。目前,我将所有这些内容发送为underscore,并且JSON的前端接收view具有必要的javascript和正确的下划线模板,以在页面上呈现最终的html。

将这些内容视为Feed时会很好,这些内容会在滚动时动态加载。

但我希望每个帖子都有一个单独的页面,例如问题和相关答案的单独页面以及单独的评论页面。我希望这些页面能够被搜索引擎有效地编入索引,所以我希望将它们作为最终生成的backbone.js传输,而不是在一系列ajax调用之后填充内容的require.js主条目。

解决此问题的一种方法是使用express.js视图在服务器端构建html,然后在其中注入所有必需的javascript并发送它。但我不想重复我的逻辑。

我有任何方法可以重新使用backbone.js中编写的代码逻辑,用于提供变量和注入js的模板渲染,所有这些都在服务器端,然后简单地将生成的最终html发送到客户端,因此,如果他们看到页面的源代码,他们就可以看到完整的内容。

由于

1 个答案:

答案 0 :(得分:2)

如果要在服务器端进行渲染,一种方法是将视图绑定到元素:

var View = Backbone.View.extend({
  el: "#yourSuperId"
});

new View();

使用el属性,您可以自动将视图附加到现有元素。你不需要渲染它。