我刚刚开始一个已经使用 Backbone 的 Web 项目,到目前为止我还没有做过任何 Web 项目。我一直在阅读文档并阅读路由器( http://thomasdavis.github.com/2011/02/07/making-a-restful-ajax-app.html 和 http://backbonetutorials.com/what-is-a-router/#/route/action ),但我不确定我是否理解其中一项基本内容。
Backbone 路由器中的 # 标记有何用途?我用谷歌搜索发现 # 用于指向页面中的特定点,但除此之外,我不太确定 Backbone 如何使用它。点赞此页面: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)
但这实际上意味着什么?我不太明白。很抱歉提出了菜鸟问题,但我真的无法弄清楚。谢谢。
最佳答案
哈希值之后的 URL 部分是“fragment identifier ”,最初是为了引用像 http://example.com/my_long_article#Section-14 这样的页内 anchor 。其中这是一个带有 <a name="Section-14"></a>
的 HTML 文档。就在第 14 节 Material 的上方。浏览器实际上并不在请求中将 URL 的这一部分发送到服务器(这可能会令人沮丧),它只是用于将长文档自动滚动到该位置。
对于现代单页应用程序,该技术已被重新调整用途,以获取表示应用程序中特定屏幕或 View 的 URL,但不会导致浏览器实际请求不同的文档。因此,如果您从 /my-app#cars
导航至/my-app#trucks
,浏览器不会加载新页面,这意味着您的 javascript 保持加载状态并可以以“单页”样式进行响应。
现代浏览器可以通过 HTML5 pushState API 实现这一点,但对于较旧的浏览器,哈希方法仍然很常见。
关于javascript - Backbone 路由,#标签是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15469519/