如何为单页 JavaScript 应用程序生成唯一 URL。
URL 的行为应该像一个普通的 URL,即将它粘贴到浏览器中,如果用户有权限,应用程序应该加载显示的特定视图。Gmail 会这样做,许多其他人也是如此。
我猜这将涉及读取位置哈希值并适当地执行操作。
对于未来的项目,是否有任何框架可以内置此功能?
谢谢, 斯里
如何为单页 JavaScript 应用程序生成唯一 URL。
URL 的行为应该像一个普通的 URL,即将它粘贴到浏览器中,如果用户有权限,应用程序应该加载显示的特定视图。Gmail 会这样做,许多其他人也是如此。
我猜这将涉及读取位置哈希值并适当地执行操作。
对于未来的项目,是否有任何框架可以内置此功能?
谢谢, 斯里
你可以试试 BackboneJs,我敢肯定有数百万个你想要的功能http://documentcloud.github.com/backbone/
我不会在哈希值上构建它。使用history.pushState
等用真实的自然 URL 构建它。使用重写请求站点上的任何正常资源都由单个处理器处理。然后 onload,只需检查 URL 中的内容与包含用于构建该资源的控制器的某种散列。此外,您可以构建 URL,因此它们实际上是正则表达式值,以允许在单页场景中使用半动态 URL。
urls = {
{ url : "/content/id/(\d)*?/", controller : controllers.blah }
{ url : "/home/", controller : controller.home }
}
controllers : {
blah : function() {
// do stuff
},
home : function() {
// do stuff
}
}
显然它变得更加复杂,但这是我用来创建我的 javascript one pager 的方法。此外,在页面加载时,我将运行一个 jQuery 调用,该调用具有所有内部链接点击,以通过页面在页面加载时使用的完全相同的处理器运行,从而有效地劫持它们。
有一个名为 DerbyJS ( http://derbyjs.com ) 的 JavaScript 框架,它完全支持你想要的。