9

我正在对单页应用程序的主干进行一些尽职调查,并想知道是否可以在服务器端重用来自客户端的相同视图/路由,以便当谷歌访问 pushstate URL 或访问它时直接,服务器可以生成与主干在客户端生成的完全相同的 HTML。

必须维护两组独立的视图/路由,一组在客户端,一组在服务器上,这将是一件痛苦的事情。我在 github 上看到了 backnode 项目,但是这似乎有点忽略了这一点,您最终不得不两次编写相同的骨干路由器。

只是想知道当在主干中使用 pushstate url 并需要从服务器提供相同的视图时,人们通常如何处理这种情况?人们是在复制代码还是有更好的方法?

4

2 回答 2

5

我还没有尝试过,但是这些使用 node.js 和主干的想法可能会有所帮助:

http://andyet.net/blog/2011/feb/15/re-using-backbonejs-models-on-the-server-with-node/

http://bennolan.com/2010/08/13/pushstate-and-nodejs.html

基本上唯一的方法是让你的node.js服务器和前端客户端共享相同的路由/模型代码,这样你就不会两次编写相同的东西。如果您在服务器端使用其他东西(如 Ruby),则必须将 node.js 放在应用服务器的前面。然后为新客户端(推送状态和客户端 js)制作 node.js 代理,并为旧/机器人客户端实际渲染工作。

另一种选择是做 jQuery Mobile 所做的事情,即 Hijax 方法。制作大量 HTML5 页面的想法(您必须查看其路由才能看到)。

为了完整起见,您应该了解 google 如何抓取 AJAX:http ://code.google.com/web/ajaxcrawling/docs/getting-started.html

于 2011-09-01T13:09:25.560 回答
0

这个项目正是你想要做的。你可能会感兴趣去看看。 https://github.com/developmentseed/bones

于 2013-01-07T15:21:04.820 回答