iis服务器助手广告广告
返回顶部
首页 > 资讯 > 前端开发 > html >Vue页面监听用户预览时间功能怎么实现
  • 156
分享到

Vue页面监听用户预览时间功能怎么实现

2024-04-02 19:04:59 156人浏览 独家记忆
摘要

这篇文章主要介绍“Vue页面监听用户预览时间功能怎么实现”,在日常操作中,相信很多人在Vue页面监听用户预览时间功能怎么实现问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”Vu

这篇文章主要介绍“Vue页面监听用户预览时间功能怎么实现”,在日常操作中,相信很多人在Vue页面监听用户预览时间功能怎么实现问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”Vue页面监听用户预览时间功能怎么实现”的疑惑有所帮助!接下来,请跟着小编一起来学习吧!

定义开始结束计时函数

在 data 中定义我们通过变量定义计时器,这样可以通过 this.timer 随处可访问,便于后面销毁页面的时候清除它。

duration 为时长的计数变量,初始化为 0,可根据计时器的第二个时间间隔参数,决定单位是秒还是毫秒。

export default {
  data() {
    return {
      timer: null,
      duration: 0
    }
  },
  methods: {
    startTimer() {
      this.timer = setInterval(() => {
        console.log("观看时长: ", this.duration)
        this.duration++
      }, 1000)
    },
    stopTimer() {
      clearInterval(this.timer)
      this.updateViewHistory() // 上报数据接口
    },
    updateViewHistory() {
    // 上报接口逻辑代码
    ....
    }
  }
}

在 startTimer 函数中我们顺便打印出 duration 变量来验证显示的时间是否正确。

如何以及在哪调用

定义好了开始结束的方法,我们就要开始想在哪调用它们。因为预览的页面内容不是唯一的,是根据素材的 id 来获取详情进行渲染的。如果我们把 startTimer 写在 mounted 生命周期里,那么当我们访问不同 id 的页面的时候,无法正常切换我们想要的逻辑。

所以我选择了通过监听路由中的 id 参数,来达到在预览不同页面时候来切换开始和结束的逻辑

watch: {
    $route: {
      immediate: true,
      handler(to, from) {
        if (to.params.id) this.trainingId = to.params.id
        this.startTimer()
      }
    }
  }

调用了开始计时的方法,终于我们可以在 console 的 log 中可以看到输出了当前的时长

Vue页面监听用户预览时间功能怎么实现

然后也是最后一步,我们需要在页面销毁的时候调用 stopTimer 函数来清除定时器,上报数据。

由于我们的预览页面是通过 window.open 打开的独立的标签页,所以这里是通过 destroyed 生命周期函数监听。如果是通过路由方法进行的跳转,那么我们需要在离开页面的时候进行销毁,方可再通过 destroyed 监听到。

mounted() {
    window.addEventListener("beforeunload", e => this.beforeunloadHandler(e))
  },
  destroyed() {
    window.removeEventListener("beforeunload", e => this.beforeunloadHandler(e))
  }

通过 window 的监听器方法来来间接调用 stopTimer 方法

methods: {
    beforeunloadHandler (e) {
      this.stopTimer()
    }
}

这里有人会问为什么不直接在 destroyed 中调用 stopTimer 方法,这样可以分离出特有的逻辑,不与 destroyed 中其它的逻辑混在一起。提高代码的可读性和维护性。

到此,关于“Vue页面监听用户预览时间功能怎么实现”的学习就结束了,希望能够解决大家的疑惑。理论与实践的搭配能更好的帮助大家学习,快去试试吧!若想继续学习更多相关知识,请继续关注编程网网站,小编会继续努力为大家带来更多实用的文章!

--结束END--

本文标题: Vue页面监听用户预览时间功能怎么实现

本文链接: https://www.lsjlt.com/news/95925.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • Vue页面监听用户预览时间功能怎么实现
    这篇文章主要介绍“Vue页面监听用户预览时间功能怎么实现”,在日常操作中,相信很多人在Vue页面监听用户预览时间功能怎么实现问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”Vu...
    99+
    2022-10-19
  • Vue页面监听用户预览时间功能如何实现
    这篇文章主要介绍“Vue页面监听用户预览时间功能如何实现”的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇“Vue页面监听用户预览时间功能如何实现”文章能帮助大家解决问题...
    99+
    2022-10-19
  • Vue 页面监听用户预览时间功能的实现代码
    最近的业务中涉及到这样一个需求,在线培训的系统需要知道用户对某个在线预览的页面追踪用户的预览时长。初步我们首先想到借助 Vue 页面的生命周期函数 mounted 和 destroy...
    99+
    2022-11-12
  • 怎么用vue实现页面加载时的进度条功能
    这篇“怎么用vue实现页面加载时的进度条功能”文章的知识点大部分人都不太理解,所以小编给大家总结了以下内容,内容详细,步骤清晰,具有一定的借鉴价值,希望大家阅读完这篇文章能有所收获,下面我们一起来看看这篇“怎么用vue实现页面加载时的进度条...
    99+
    2023-07-04
  • 怎么使用vue-pdf插件实现pdf文档预览功能
    这篇文章主要介绍了怎么使用vue-pdf插件实现pdf文档预览功能的相关知识,内容详细易懂,操作简单快捷,具有一定借鉴价值,相信大家阅读完这篇怎么使用vue-pdf插件实现pdf文档预览功能文章都会有所收获,下面我们一起来看看吧。vue-p...
    99+
    2023-07-05
  • 怎么在Vue中利用路由监听实现同页面动态加载
    怎么在Vue中利用路由监听实现同页面动态加载?很多新手对此不是很清楚,为了帮助大家解决这个难题,下面小编将为大家详细讲解,有这方面需求的人可以来学习下,希望你能有所收获。watch: {   &nbs...
    99+
    2023-06-15
  • Vue怎么实现用户访问没有登陆时自动跳转登录页面
    这篇文章主要介绍了Vue怎么实现用户访问没有登陆时自动跳转登录页面的相关知识,内容详细易懂,操作简单快捷,具有一定借鉴价值,相信大家阅读完这篇Vue怎么实现用户访问没有登陆时自动跳转登录页面文章都会有所收获,下面我们一起来看看吧。设计思路定...
    99+
    2023-07-05
  • 利用vue怎么实现一个桌面向网页拖动文件的功能
    本文章向大家介绍利用vue怎么实现一个桌面向网页拖动文件的功能的基本知识点总结和需要注意事项,具有一定的参考价值,需要的朋友可以参考一下。vue是什么软件Vue是一套用于构建用户界面的渐进式JavaScript框架,Vue与其它大型框架的区...
    99+
    2023-06-06
软考高级职称资格查询
推荐阅读
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作