在线时间:8:00-16:00
迪恩网络APP
随时随地掌握行业动态
扫描二维码
关注迪恩网络微信公众号
最近的业务中涉及到这样一个需求,在线培训的系统需要知道用户对某个在线预览的页面追踪用户的预览时长。初步我们首先想到借助 Vue 页面的生命周期函数 有了思路,我们就可以开始筹划具体的代码。 定义开始结束计时函数在
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() { // 上报接口逻辑代码 .... } } } 在 如何以及在哪调用定义好了开始结束的方法,我们就要开始想在哪调用它们。因为预览的页面内容不是唯一的,是根据素材的 所以我选择了通过监听路由中的 watch: { $route: { immediate: true, handler(to, from) { if (to.params.id) this.trainingId = to.params.id this.startTimer() } } } 调用了开始计时的方法,终于我们可以在 然后也是最后一步,我们需要在页面销毁的时候调用
mounted() { window.addEventListener('beforeunload', e => this.beforeunloadHandler(e)) }, destroyed() { window.removeEventListener('beforeunload', e => this.beforeunloadHandler(e)) } 通过 methods: { beforeunloadHandler (e) { this.stopTimer() } } 这里有人会问为什么不直接在 在写代码的时候我们不仅要实现功能,还要想的更多一点,这就是普通和高手的区别。 到此这篇关于Vue 页面监听用户预览时间的文章就介绍到这了,更多相关Vue 监听用户预览时间内容请搜索极客世界以前的文章或继续浏览下面的相关文章希望大家以后多多支持极客世界! |
请发表评论