浏览器如何监听用户几分钟无任何操作行为时退出登录(非定时器方案)

题目描述

浏览器如何监听用户几分钟无任何操作行为时退出登录,类似直播网站用户长时间无操作时关闭直播视频。

自己的思路

我一开始想到的就是使用定时器,监听鼠标和键盘的操作事件,记录最后一次操作的时间和上一次操作的时间做对比,如果超过了时间限制就使cookie过期。
但是我似乎看到过web直接提供了对应的API,之前在mdn查看web apis文档时看到过,检测用户是否无任何操作API。是否存在这样的api?还是我记错了。

你期待的结果是什么?

使用非定时器的方案实现监听用户一段时间无操作后退出登录。

阅读 6.3k
4 个回答

这个可以没有本地定时器,但一定有定时器,比如在服务器端处理计时,本地端只周期性去检测是否还需要登录。

你记错了吧……

  1. 监听键盘事件
  2. 监听鼠标移动事件
  3. 利用rxjs的防抖功能,在一定时间内未接收到新值时则触发logout方法。
 this.xxxxSubject.asObservable().pipe(debounceTime(10 * 60 * 1000))
      .subscribe(() => {
        if (用户已登录) {
          注销
        }
      });

  监听事件(): void {
    this.xxxSubject.next();
  }

https://segmentfault.com/a/1190000022435877

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题