从服务器端渲染页面时保持状态

时间:2013-01-19 23:38:08

标签: backbone.js pushstate singlepage

我目前正在使用backbone.js构建单页应用

为了保持所有应用程序页面的可访问性和可抓取性,我确保服务器端也可以在直接访问页面时呈现页面。

问题如下: 当pushState不可用时,它使用当前URL启动路由器(例如,如果我使用http://example.com/example访问了一个URL,路由器将在该URL上构建散列片段)

所以:

  1. 有没有办法解决这个问题(除了重定向使用)
  2. 如果您在JS(使用pushState功能检测)后立即重定向,您仍然会遇到没有哈希标记的网址问题。
  3. 一般来说,有没有更好的方法来设计这种应用程序?

    谢谢!

1 个答案:

答案 0 :(得分:2)

如果SEO友好的浏览对你很重要,我认为不断发展的共识是pushstate或什么都没有(即降低web 1.0并将hash-bang路由全部放在一起)。

我不使用Backbone.js并且只使用 PJAX 的原因之一是pushstate和DOM渲染时间非常好你可以是单页,只有很少的JS和hash-bang路由一直是相当hackish。

因此,一个选项是不要一起使用Backbone的路由器,只是让像PJAX(或DJAX或类似的东西)做路由工作,让Backbone只做内页事件/渲染的东西(即验证表格,模态窗口)等等。)。