Vue功能篇 - 6.检测页面长时间未操作返回首页功能

代码写于App.vue页面,相当于全局监听,每个路由是被包含在div中的!

<template>
  <div id="app"  @click="clickDiv">
    <router-view></router-view>
  </div>
</template>
<script>
export default {
  name: "App",
  data() {
    return {
      lastTime: null, // 最后一次点击的时间
      currentTime: null, // 当前点击的时间
      timeOut: 10 * 60 * 1000, // 设置超时时间:10分钟
      timeInterval: "",
    };
  },
  methods: {
    clickDiv() {
      if (this.timeInterval == "") {
       // 5秒钟检测一次
        this.timeInterval = setInterval(this.isTimeOut, 5000);
      }
      this.lastTime = new Date().getTime();
    },
    isTimeOut() {
      this.currentTime = new Date().getTime(); // 当前时间
      // 判断上次最后一次点击的时间和这次点击的时间间隔是否大于规定的时间,例:10分钟
      if (this.currentTime - this.lastTime > this.timeOut) {
        //判断是否为登录状态,只有登录状态下才调用方法
        if (sessionStorage.token) {
          sessionStorage.clear();
          clearInterval(this.timeInterval);
          this.timeInterval = "";
          this.$router.push({
            name: "login",
          });
          //先返回首页,在给提示,可以根据具体需求调整
          this.$alert("检测到您长时间未操作页面,请重新登录!", "温馨提示", {
            confirmButtonText: "确定",
            callback: (action) => {},
          });
        }
      }
    },
  },
};
</script>

  • 1
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

情系半生e

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值