javascript - Backbone 路由,#标签是什么?

标签 javascript backbone.js

我刚刚开始一个已经使用 Backbone 的 Web 项目,到目前为止我还没有做过任何 Web 项目。我一直在阅读文档并阅读路由器( http://thomasdavis.github.com/2011/02/07/making-a-restful-ajax-app.htmlhttp://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/

相关文章:

javascript - 通过更改事件调用方法时主干集合为空

javascript - 使用 JavaScript 操作多个(可预测的)命名 DIV

javascript - d3js 中路径元素上的 mousemove 回调

javascript - 查询后如何更新 Apollo 缓存?

javascript - 使用 javascript/jquery 获取所有后台属性

javascript - 通过将指定的 el 传递到 subview 实例化中,将 View 渲染到父 div 中

javascript - 通过变换正确的outerWidth : scale

javascript - 是否可以使用对象 ID 而不是对象来初始化 Backbone 集合?

javascript - "rendering"是什么意思(backbone.js)?

javascript - Backbone.js 需要 json2.js?