[英]How to check one idle timeout in all tabs after user login in angular
我需要在用戶登錄后檢查不活動用戶。 用戶可以在不同的選項卡中使用該應用程序。 我為此任務實施了一些解決方案,但每個都有一些問題。
請你幫助我好嗎。
本地存儲?
它是按域而不是按選項卡綁定的,因此您可以在其中存儲您的最后一個活動時間戳。
app.component
(大概):
private readonly userActivityKey: string = 'user-activity';
@HostListener...
public ngOnInit(): void {
setInterval(() => this.checkUserActivity(), 60000); // that's a minute, right?
}
public onClickEvent(): void {
localStorage.setItem(this.userActivityKey, new Date());
}
private checkUserActivity(): void {
const lastActiveDateTime = localStorage.getItem(this.userActivityKey);
// check the time...
}
每個選項卡都會在單擊時更新本地存儲值,並且所有選項卡都會從其計時器上的同一位置讀取。
訪問本地存儲並不昂貴,以至於每分鍾左右都有 50 個選項卡全部訪問它。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.