【问题标题】:When does a browser logs a history?浏览器何时记录历史记录?
【发布时间】:2015-06-14 14:07:48
【问题描述】:

浏览器是否会记录 url 命中的历史记录?或者当一个html页面的所有资源都加载完毕的时候?

在我的页面中,很少有外部链接使我的登录页面加载时间更长..尽管呈现了 html(view) 页面。基于条件检查,Angular js 快速路由到第二页,但浏览器历史日志不存储第一页的条目。我们在页面中启用了后退按钮功能。因此,当用户单击浏览器后退按钮时,它应该显示第一页。而是呈现浏览器的主页。

我已经在这里问过一个与 Angular js 相关的类似问题:

Angular JS - How to force browser to log history for quick routing?

我无法同时采用这两种解决方案,因为我们不鼓励任何第三方脚本,例如 angular ui-router。此外,第二种解决方案是不可采用的,因为在 $http.get('/someUrl') 之后我们需要延迟几秒钟才能调用另一个服务。如果“someUrl”需要大约 6 到 7 秒,我们需要事先知道这个延迟(这是不确定的)来调用另一个服务。

【问题讨论】:

    标签: javascript angularjs browser browser-history


    【解决方案1】:

    AngularUI Router 是 AngularJS 的路由框架,它允许您将界面的各个部分组织到状态机中。与 Angular ngRoute 模块中的 $route 服务不同,它是围绕 URL 路由组织的,UI-Router 是围绕状态组织的,这些状态可以选择附加路由以及其他行为。

    状态绑定到命名的、嵌套的和并行的视图,让您能够强大地管理应用程序的界面。

    如需更多帮助,请参阅此 Angular JS - How to force browser to log history for quick routing?

    【讨论】:

    • Reena,这在我上面给出的堆栈线程中得到了回答。我无法使用它。而且,这就是我要求第三方服务以外的其他解决方案的原因。
    【解决方案2】:

    Angular 的 $location.replace() 终于施展了魔法。

    以前我使用的是 $location.url('/somepath'),它只是重定向到浏览器的主页,而不是保存第一页的历史记录。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2011-11-14
      • 2013-05-21
      • 2011-02-04
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-02-12
      相关资源
      最近更新 更多