Angularjs实现用户长时间未操作自动退出登录

Angularjs实现用户长时间未操作自动退出登录

需求

当用户超过半小时未操作页面,自动退出登录

实现

在入口文件中,设置一个定时器(退出登录),再添加一个全局的点击事件监听函数,当用户有了点击操作后,重置定时器,如果用户长时间未操作,则执行定时器中的退出登录操作

代码

1、在AngularJS的根控制器(myAppController)中,使用$document服务注册一个全局点击事件的监听器。

2、添加一个定时器,定时器内是退出登录的操作,每当监听到用户点击后,重置定时器

javascript 复制代码
(function () {
appModule.controller('myAppController', [
    '$scope', '$document',
    function ($scope, $document) {
      // 此处设置一个全局点击事件监听,用户超过半小时未操作,自动退出登录
      // 获取退出登录a标签(这是根据我的项目实现退出登录的方法,具体情况根据自己的项目来写)
      var btn = document.getElementById('btn-logout');
      // 设置一个定时器
      var timeout = setTimeout(() => {
        console.log('长时间未操作,我要退出啦')
        btn.click();
      }, 1800000)
      // 定义一个监听器,每点击一次,刷新定时器
      var clickListener = function (e) {
        // 先清除定时器
        clearTimeout(timeout);
        // 重置定时器
        timeout = setTimeout(() => {
          console.log('长时间未操作,我要退出啦')
          btn.click();
        }, 1800000)
      }
      // 注册全局点击事件监听器
      $document.on('click', clickListener);
      // 在控制器销毁时,取消全局点击事件监听器
      $scope.$on('$destroy', function () {
        $document.off('click', clickListener);
      });
    }
  ]);
})()
相关推荐
|晴 天|8 小时前
Vue 3 + TypeScript + Element Plus 博客系统开发总结与思考
前端·vue.js·typescript
猫3288 小时前
v-cloak
前端·javascript·vue.js
AC赳赳老秦9 小时前
OpenClaw二次开发实战:编写专属办公自动化技能,适配个性化需求
linux·javascript·人工智能·python·django·测试用例·openclaw
旷世奇才李先生9 小时前
Vue 3\+Vite\+Pinia实战:企业级前端项目架构设计
前端·javascript·vue.js
Ulyanov9 小时前
《PySide6 GUI开发指南:QML核心与实践》 第二篇:QML语法精要——构建声明式UI的基础
java·开发语言·javascript·python·ui·gui·雷达电子对抗系统仿真
聚美智数10 小时前
企业实际控制人查询-公司实控人查询
android·java·javascript
SoaringHeart10 小时前
Flutter进阶:用OverlayEntry 实现所有弹窗效果
前端·flutter
IT_陈寒12 小时前
Vite静态资源加载把我坑惨了
前端·人工智能·后端
herinspace12 小时前
管家婆实用贴-如何分离和附加数据库
开发语言·前端·javascript·数据库·语音识别
小码哥_常12 小时前
从MVC到MVI:一文吃透架构模式进化史
前端