0

我目前正在使用backbone.js 构建一个单页应用程序

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

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

所以:

  1. 有没有办法处理这个(除了重定向使用)
  2. 如果您在 JS 后立即重定向(使用 pushState 功能检测),您仍然会遇到 url 没有哈希符号的问题。

一般会问,有没有更好的方法来设计这种应用程序?

谢谢!

4

1 回答 1

2

如果 SEO 友好的浏览对您很重要,我认为不断发展的共识是 pushstate 或什么都不是(即降级 web 1.0 并同时放弃 hash-bang 路由)。

我不使用 Backbone.js 而只使用PJAX的原因之一是 pushstate 和 DOM 渲染时间非常好,您可以使用非常少的 JS 成为单页,而 hash-bang 路由一直很笨拙。

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

于 2013-01-21T15:15:12.523 回答