• VUE2 监听页面刷新和关闭事件


    最近想完成一个关闭设备设备页面就释放设备的需求,但是需要首先知道页面是否关闭,再执行一个请求操作,目前最新版chrome对于页面关闭刷新等的权限限制了很多,找了好久找到合适的方法

    在vue中的mounted中添加如下方法

    mounted: function () {
        let _beforeUnload_time = 0, _unload_time = 0
        // 窗口关闭或刷新时候的操作
        window.addEventListener('beforeunload', (event) => {
            _beforeUnload_time = new Date().getTime()
            {#// Cancel the event as stated by the standard.#}
            {#event.preventDefault();#}
            {#// Chrome requires returnValue to be set.#}
            {#event.returnValue = '';#}
        });
    
        window.addEventListener('unload', (event) => {
            _unload_time = new Date().getTime()
            console.log(_unload_time - _beforeUnload_time)
            // 关闭页面通常小于100毫秒
            if (_unload_time - _beforeUnload_time <= 100) {
                //业务代码
                this.stopUsing()
            }
        })}

    然后在对应的业务代码地方用自己的函数即可,原理是刷新页面与关闭页面时两个事件的事件间隔不一样,关闭页面通常小于100ms,另外需注意上方有四行注释的代码,如果不注释,就会在关闭和刷新的时候提醒用户是否关闭,而用户的选择时间也会算进去,影响我们两个事件的事件间隔判断,因此注释掉。

    原理如下

    页面加载时只执行onload
    页面关闭时先执行onbeforeunload,最后onunload
    页面刷新时先执行onbeforeunload,然后onunload,最后onload。

  • 相关阅读:
    WINDOWS XP启用远程桌面
    Qt 局域网聊天软件
    SpringCloud 学习笔记(2)项目搭建
    SpringCloud 学习笔记(3)注册中心Eureka
    工作一周的经验
    Servlet支持上传多张图片
    区别前端的首次加载
    Java中String类型的部分用法
    前端数据统计用做Bootstrap的一些柱状图、饼状图和折线图案例
    python线程池、自定义异常、请求伪装
  • 原文地址:https://www.cnblogs.com/CYHISTW/p/16370668.html
Copyright © 2020-2023  润新知