angular - Angular——处理页面刷新
问题描述
我的客户需要在应用程序的 Angular 前端中使用一种机制,例如 - 当用户关闭浏览器选项卡或浏览器本身时,用户应该在组织的 SSO 级别注销,这将使用户重新登录,当他/她再次请求该应用程序。
我通过使用pagehide
事件来做到这一点,以这种方式:
export class HomepageComponent implements OnInit {
ngOnInit(): void {
this.subscribeToNativeNavigation();
}
private subscribeToNativeNavigation() {
fromEvent(window, "pagehide").subscribe(() => {
const message = "You may lose your data if you refresh now";
window.event.returnValue = !!message;
//do the necessary session storage cleanups and other resets
//fire an explicit logout request to the organization's SSO
return message;
});
}
}
需求:
上面的代码片段适用于浏览器选项卡或浏览器关闭,但该pagehide
事件似乎也被触发以进行浏览器刷新 - 这是客户端不想要的。换句话说,浏览器选项卡关闭(或浏览器关闭)需要按原样处理,但浏览器刷新不应通过上述代码段(即用户不得注销)
有没有办法在仍然使用的同时实现这一点,pagehide
或者我应该处理不同的事件?还是我完全错了?请指教。
解决方案
推荐阅读
- cuda - cuda 11 内核无法运行
- python - 如何将列添加到 numpy recarry
- google-cloud-platform - 我们如何使用数据资源获取 GCP 存储桶名称
- sql - .NET CORE:Dapper 映射多对多查询
- java - Gson.fromJSON 返回 0 和 null
- git - 如何在 git update 上触发 ansible playbook?
- apache-spark - 需要将列的值映射到另一列作为火花数据框中的键值对
- graph - Spotfire - 在一个图上选择数据并从前一个选择中取消选择
- spring-boot - 如何从几个 yaml 规范生成 swagger-ui?
- lambda - Hazelcast Jet - 如何在 Jet 管道中使用非静态方法