我刚刚开始使用已经使用Backbone的Web项目我到目前为止还没有做任何网络。我一直在阅读文档并阅读路由器(http://thomasdavis.github.com/2011/02/07/making-a-restful-ajax-app.html和http://backbonetutorials.com/what-is-a-router/#/route/action),但我不确定我是否理解其中一个基本的东西。
骨干路由器使用的#标签是什么?我用Google搜索并看到#用于指向页面中的特定点,但除此之外,我不确定骨干是如何使用它的。就像在这个页面上一样: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)
但这究竟意味着什么?我不太清楚。抱歉没有问题,但我真的无法理解。感谢。
答案 0 :(得分:2)
哈希之后的网址部分是“fragment identifier”,它最初是为了引用像http://example.com/my_long_article#Section-14这样的页内锚点,其中是一个带有<a name="Section-14"></a>
的单个HTML文档正好在第14节材料之上。浏览器实际上并没有在请求中将这部分URL发送到服务器(这可能令人沮丧),它只是用于将长文档自动滚动到该位置。
对于现代单页应用程序,此技术已被重新利用以获取URL以表示应用程序内的特定屏幕或视图,但不会导致浏览器实际请求不同的文档。因此,如果您从/my-app#cars
导航到/my-app#trucks
,则浏览器不会加载新页面,这意味着您的javascript会保持加载状态,并且可以采用“单页”样式进行响应。
现代浏览器可以通过HTML5 pushState API实现此目的,但对于较旧的浏览器,哈希方法仍然很常见。