Vue 页面15分钟无操作时返回首页

这种需求手机端和pc端一般是不存在的,因为都是可以手动操作刷新的。

最近在做一个户外社区大屏的项目,因为大屏是全屏显示,没法手动刷新,不可能在页面专门做一个刷新按钮,也不好看,那这样的需求就显得格外重要了。

首先我们来分析一下需求:

  1.15分钟——需要定时器

  2.无操作——监控页面上的点击、触摸、滑动等事件

  3.返回首页——切换路由

我们只需要设置一个定时器,在一进入页面的时候就开始计时,如果15分钟内有点击、触摸、滑动等操作时就重新计时,时间一到就切换路由。

而且我们还需要新建一个空白组件rbck.vue(路由名字随意),切换时先跳转到 /rbck  ,在rbck.vue里立即执行跳转到首页,达到重定向并刷新的效果。

在main.js里

配置路由

import rbck from ‘./components/rbck.vue‘
const routes = [
  {
    path: ‘/rbck‘,
    meta: {
      title: ‘跳转页‘,
      scrollToTop: true
    },
    component:rbck,
  }
]

  

created() {
    this.isTimeOut();
}

  

data() {
    return {
      timeOut: ‘‘
    }
  },

  

methods: {
    //页面15分钟无操作时返回首页
    startTimer() {
      let that = this;
        clearInterval(that.timeOut);
        that.timeOut = setInterval(function () {
          that.$router.push({path: ‘/rbck‘})
        },1000*60*15)
    },
    isTimeOut() {
      let that = this;
      if(that.$route.path == "/") {
        that.startTimer();
      }
      document.body.onmouseup = that.startTimer;
      document.body.onmousemove = that.startTimer;
      document.body.onkeyup  = that.startTimer;
      document.body.onclick  = that.startTimer;
      document.body.ontouchend  = that.startTimer;
    },
}

解决跳转之前路由等于跳转之后路由问题:

watch: {
    ‘$route‘ (to, from) {
      if (to.path == from.path) {
        this.$router.push({
          path: ‘/rbck‘
        })
      }
    }
  },

rbck.vue代码如下:

<script type="text/ecmascript-6">
    export default{
        data(){
            return{

            }
        },
        created () {
          this.backFun();
        },
        methods: {
          backFun() {
            this.$router.replace({path: ‘/‘})
          }
        },
        components:{

        }
    }
</script>

  

时间: 2024-11-09 01:21:23

Vue 页面15分钟无操作时返回首页的相关文章

WriteFile操作时返回87错误

调用 WriteFile写数据时出错,用GetLastError得到错误代码为87(无效参数). 代码片段如下: if ((!WriteFile( m_hDevEx, pBuf, size, &WriteBytes, &Overlapped)) && (GetLastError() != ERROR_IO_PENDING)) { OutputDebugString("Write error\n"); return false; } 问题出在最后一个参数O

WPF 窗体中获取键盘和鼠标无操作时的超时提示

原文:WPF 窗体中获取键盘和鼠标无操作时的超时提示 通过调用Windows API中的GetLastInputInfo来获取最后一次输入的时间 using System;using System.Collections.Generic;using System.Linq;using System.Text;using System.Windows;using System.Windows.Controls;using System.Windows.Data;using System.Windo

MyBatis在insert插入操作时返回主键ID的配置

转:http://www.cnblogs.com/icerainsoft/p/4648900.html 很多时候,在向数据库插入数据时,需要保留插入数据的id,以便进行后续的update操作或者将id存入其他表作为外键. 但是,在默认情况下,insert操作返回的是一个int值,并且不是表示主键id,而是表示当前SQL语句影响的行数... 接下来,我们看看MyBatis如何在使用MySQL和Oracle做insert插入操作时将返回的id绑定到对象中. MySQL用法: <insert id=&qu

Mybatis在insert操作时返回主键

今天在写项目的时候,遇到一个需求,就是在像数据库插入数据的时候,要保留插入数据的主键,以便后续进行级联时,可以将该主键作为另张表的外键. 但是在正常情况下我们使用插入语句返回的是int型,含义是影响该表数据的条数.但是这时候我们想要的得到的却是主键,这时候就可以对mybatis文件进行配置 如图: 属性详解: parameterType ,入参的全限定类名或类型别名 useGeneratedKeys ,取值范围true|false(默认值), 设置是否使用JDBC的getGenereatedKe

(JQuery)当页面常见时间无操作的时候,跳转到登录页面

大前提 就是 用户不禁用脚本 // 如果要是的话,尽量每个页面都要使用$(function () { var TimeNum = new Date().getTime(); //mousedown() 监听鼠标是否使用 keydown() 监听键盘是否可用 $(document).mousedown(function () { TimeNum = new Date().getTime(); }).keydown(function () { TimeNum = new Date().getTime

程序猿之---C语言细节27(函数无参数时细节、函数默认返回int型证明、return默认还回值、void指针++操作)

主要内容:函数无参数时细节.函数默认返回int型证明.return默认还回值.void指针++操作 一.函数无参数时细节 函数无参数时应该加上void 在c语言中一个函数 void f(); 在使用时传递参数f(2);没有报错,而在c++中则会报错 最好加上void来明确函数是无参数的 二.函数默认返回类型为int型 见下面程序 三.return默认返回1 细节:return不可返回执行栈内存中的指针,因为该内存在函数体结束时自动销毁 四.void 指针++操作 void *p; p++; //

支付宝异步返回无操作问题

这两天做支付时遇到订单支付完成后订单状态无修改的情况, 各种奋斗解决终于搞定,现在拿出来分享下希望遇到同样问题的可以快速解决 支付成功后随手关闭支付成功页面,这样需要调用异步页面来修改订单状态,但是页面不接受xml post 直接用网址打开异步页面会返回错误页面.“从客户端****中检测到有潜在危险的 Request.Form 值” 这种情况需要您在web.config 中添加<httpRuntime requestValidationMode="2.0" /> 和<

ios 解决第一个页面是通过loadData或者是loadHtml时返回控制的问题

问题: webView在通过loadData或者loadHtml方法加载到第一个页面后跳转到其他的webView后,点击导航条的返回按钮时由于webView 的canGoback为NO导致我们返回不了第一个我们通过loadHtml形式进来的web页. 导致原因:webView 的canGoback是通过url来判定的,加入一个页面的前一个页面是通过url的形式来加载进来的,那么我们此时的canGoback为YES,否则为NO 所以我们加入有类似一下的方法会失败 -(void)goback{ if

[ASP.NET MVC2 系列] ASP.Net MVC教程之《在15分钟内用ASP.Net MVC创建一个电影数据库应用程序》

[ASP.NET MVC2 系列]      [ASP.NET MVC2 系列] ASP.Net MVC教程之<在15分钟内用ASP.Net MVC创建一个电影数据库应用程序>      [ASP.NET MVC2 系列] ASP.Net MVC教程之<ASP.NET MVC 概述>     [ASP.NET MVC2 系列] 理解MVC应用程序的执行过程     [ASP.NET MVC2 系列] ASP.NET MVC Routing概述      [ASP.NET MVC2