0

我刚刚开始一个已经在使用 Backbone 的网络项目,直到现在我还没有做过任何网络。我一直在阅读文档并阅读路由器(http://thomasdavis.github.com/2011/02/07/making-a-restful-ajax-app.htmlhttp://backbonetutorials.com/what- is-a-router/#/route/action),但我不确定我是否理解其中的基本内容。

# 用于骨干路由器的标签是什么?我用谷歌搜索并看到 # 用于指向页面中的特定点,但除此之外,我不确定骨干如何使用它。就像在这个页面上: http: //backbonetutorials.com/what-is-a-router/#/route/action他们这样说:

Also note that routes interpret anything after "#" tag in the URL. All links in your application should target "#/action" or "#action". (Appending a forward slash after the hashtag looks a bit nicer e.g. http://example.com/#/user/help)

但这实际上意味着什么?我不太明白。很抱歉这个菜鸟问题,但我真的想不通。谢谢。

4

1 回答 1

2

散列之后的 URL 部分是“片段标识符”,它最初是用来引用页内锚点,例如http://example.com/my_long_article#Section-14,其中它是一个 HTML 文档,<a name="Section-14"></a>上面有一个第 14 节材料。浏览器实际上并没有在请求中将这部分 URL 发送到服务器(这可能令人沮丧),它只是用于将长文档自动滚动到该位置。

对于现代单页应用程序,该技术已被重新用于获取 URL 以表示应用程序中的特定屏幕或视图,但不会导致浏览器实际请求不同的文档。因此,如果您从/my-app#carsto导航/my-app#trucks,浏览器不会加载新页面,这意味着您的 javascript 会保持加载状态,并且可以以“单页”样式响应。

现代浏览器可以通过HTML5 pushState API实现这一点,但对于较旧的浏览器,哈希方法仍然很常见。

于 2013-03-18T04:21:44.983 回答