【问题标题】:Unique URLs for single page JavaScript apps?单页 JavaScript 应用程序的唯一 URL?
【发布时间】:2012-05-01 15:23:50
【问题描述】:

如何为单页 JavaScript 应用生成唯一 URL。

这些 URL 的行为应该像一个普通的 URL,即将它粘贴到浏览器中,如果用户有权限,应用程序应该加载该特定视图显示。 Gmail 会这样做,许多其他人也会这样做。

我猜这将涉及读取位置哈希值并适当地执行操作。

对于未来的项目,是否有任何框架可以内置此功能?

谢谢, 斯里

【问题讨论】:

  • 看看这个问题,它就是答案。 stackoverflow.com/questions/8546420/…
  • 在低级别上,它涉及在域后使用哈希 (#) 并将您的页面名称或路径放在其后。可能有 JS 框架可以帮助实现这一点,因此您不必自己重新创建轮子。

标签: javascript


【解决方案1】:

你可以试试 BackboneJs,我敢肯定有数百万个你想要的功能http://documentcloud.github.com/backbone/

【讨论】:

    【解决方案2】:

    我不会在哈希值上构建它。使用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 调用,该调用具有所有内部链接点击,以通过页面在页面加载时使用的完全相同的处理器运行,从而有效地劫持它们。

    【讨论】:

      【解决方案3】:

      有一个名为 DerbyJS (http://derbyjs.com) 的 JavaScript 框架,它完全支持你想要的。

      【讨论】:

        猜你喜欢
        • 2015-02-15
        • 2013-02-21
        • 2017-08-09
        • 1970-01-01
        • 1970-01-01
        • 2016-10-09
        • 1970-01-01
        • 2020-11-04
        • 2012-01-01
        相关资源
        最近更新 更多