用户使用浏览器的后退或刷新功能时SPA中的问题

时间:2016-04-29 03:22:23

标签: javascript jquery angularjs

我几乎完成了使用AngularJS和Bootstrap的SPA应用程序。到目前为止,我得到了一切正常工作,除了一件事:正确处理用户对浏览器的后退或刷新按钮。

应用程序中的所有子页面都有指向用户可以切换到的页面的按钮/链接。尽管如此,应用程序仍应正确处理后退刷新浏览器按钮。我应该补充说,有一个登录过程进入应用程序。

此外,所有关键信息都存储在$rootScope下,因此当用户刷新时,所有内容都会丢失,在某些情况下,当他对后退按钮执行操作时,结果并不理想。

我实际上有两个问题:

1)当浏览器按钮被操作时,像我这样的应用程序被广泛接受的标准行为是什么? (记住,有一个登录过程开始)。

2)我应该如何开始解决这种方法的实施?

我想到的一个选项是拦截请求,警告用户该操作会将其注销,如果用户取消,则强制浏览器忽略该请求(不确定这是否可行)。

非常感谢您的想法。

2 个答案:

答案 0 :(得分:0)

客户端路由,应用程序中的每个视图都应该有一个URL。本周允许浏览器按钮按预期工作,并为您的用户提供直接链接到视图的机会。

角度最常用的客户端路由器是angular ui-router - https://angular-ui.github.io/ui-router

答案 1 :(得分:0)

  

什么是广泛接受的应用程序的标准行为   当浏览器按钮被操作时我的? (记住,有一个登录   开始的过程)。

如果您使用的是REST服务,

  1. 将身份验证令牌存储在本地存储或Cookie中
  2. 当用户刷新页面时,向服务器发送请求并获取用户信息
  3. 如果请求结果在401中显示登录屏幕
  4. This是我用这种方法完成的示例应用程序之一。