import { Idle, DEFAULT_INTERRUPTSOURCES } from '@ng-idle/core';
import { Keepalive } from '@ng-idle/keepalive';
export class Calender {
idleState = 'Not started.';
timedOut = false;
lastPing?: Date = null;
constructor(private idle: Idle, private keepalive: Keepalive) {
idle.setIdle(30);
idle.setTimeout(30);
idle.setInterrupts(DEFAULT_INTERRUPTSOURCES);
idle.onIdleEnd.subscribe(() => this.idleState = 'No longer idle.');
idle.onTimeout.subscribe(() => {
this.timedOut = true;
});
idle.onIdleStart.subscribe(() => this.idleState = 'You\'ve gone idle!');
idle.onTimeoutWarning.subscribe((countdown) => this.idleState = 'You will time out in ' + countdown + ' seconds!');
keepalive.interval(15);
this.reset();
}
reset() {
this.idle.watch();
this.idleState = 'Started.';
this.timedOut = false;
}
从我上面的代码ng2-idle上讨论如何在空闲会话上实现超时,但是从代码中它只是在一个页面上实现,但现在我在我的angular 2项目中有超过5个页面,我需要把它每个页面中的代码订阅超时并启动计数器?如果时间到期,它会在其他页面上启动计数器,它会影响所有人
1 回答
以下是角度空闲会话过期超时警告的示例
基于此来源https://github.com/programmingwithnaveen/Session-Timeout