1. 浏览器事件:

浏览器的刷新和关闭

  • onbeforeunload:

    在页面刷新和关闭的时候触发事件,表示正要去服务器读取新的页面时调用,此时还没开始读取。
    例如: 刷新浏览器的时候tab会切换到默认值,而浏览器缓存却还是老样子,这样就可以使用浏览器恢复默认
    
//检测浏览器刷新
window.onbeforeunload = function()
{   //设置默认sessionStorage值sessionStorage.removeItem('tab','tab1')
}
  • onunload:

    则已经从服务器上读到了需要加载的新的页面,在即将替换掉当前页面时调用。

  • onload:

    当资源已加载时被触发。

  • 注: onbrforeunload和onunload都会在刷新和关闭页面是触发,但是onbeforeunload在onunload之前执行,并且它还可以阻止onunload的执行。

  • 那么在页面刷新时执行顺序就是onbeforeunload、onunload、onload。

componentWillMount () {// 拦截判断是否离开当前页面window.addEventListener('beforeunload', this.beforeunload);}componentWillUnmount () {// 销毁拦截判断是否离开当前页面window.removeEventListener('beforeunload', this.beforeunload);}beforeunload (e) {let confirmationMessage = '你确定离开此页面吗?';(e || window.event).returnValue = confirmationMessage;return confirmationMessage;}

2. vuex状态管理刷新丢失:

vuex中的变量是响应式的,而sessionStorage不是,改变vuex中的状态,
组件会检测到改变,vuex中的状态从sessionStorage中得到,这样组件就可以响应式的变化

ADD_LOGIN_USER (state,data) { //登入,保存状态 sessionStorage.setItem("username", data); //添加到sessionStorage sessionStorage.setItem("isLogin",true); state.username=data,  //同步的改变store中的状态 state.isLogin=true }, SIGN_OUT (state) { //退出,删除状态 sessionStorage.removeItem("username"); //移除sessionStorage sessionStorage.removeItem("isLogin"); state.username=''  //同步的改变story中的状态 state.isLogin=false }
// getter.js
isLogin (state) { if (!state.isLogin) { state.isLogin=sessionStorage.getItem('isLogin'); //从sessionStorage中读取状态 state.username=sessionStorage.getItem('username'); } return state.username }

浏览器事件 - 监听浏览器刷新问题及解决方案相关推荐

  1. 浏览器事件监听的方法

    转载于:https://blog.csdn.net/q6678188/article/details/51781478 使用:https://blog.csdn.net/qq_36521848/art ...

  2. js监听浏览器关闭事件(区分刷新和关闭,兼容IE9,10,11,Edge,Chrome和Firefox)

    由于各浏览器兼容性不同,所以首先要先区分各浏览器 var userAgent = navigator.userAgent; //取得浏览器的userAgent字符串 var isOpera = use ...

  3. jQuery事件监听

    monitorEvents() 浏览器事件监听 控制或右键单击元素并选择"检查 (Inspect)".在 javaScript 控制台标签中输入: monitorEvents($0 ...

  4. vue监听浏览器刷新和关闭事件,并在页面关闭/刷新前发送请求

    vue监听浏览器刷新和关闭事件,并在页面关闭/刷新前发送请求 1.需求背景: 2.需求分析: 3.实现方式: 4.实现方式解析: 1)浏览器页面事件基础 2)在mounted监听beforeunloa ...

  5. js 监听浏览器刷新还是关闭事件

    // $(window).bind('beforeunload',function(){return '您输入的内容尚未保存,确定离开此页面吗?';}); // window.onbeforeunlo ...

  6. html5 浏览器退回事件,html5的pushstate以及监听浏览器返回事件的实现

    这篇文章主要介绍了html5的pushstate以及监听浏览器返回事件的实现,主要介绍了pushstate的使用,以及监听浏览器的解决等问题,感兴趣的可以一起来了解一下 pushstate与监听浏览器 ...

  7. javaScript如何监听浏览器关闭事件

    转载链接:http://www.cnblogs.com/Tim_Liu/archive/2010/11/09/1872596.html 最近写东西的时候发现需要对浏览器的关闭进行监听, 当用户关闭的时 ...

  8. [轉]Flash/Flex监听浏览器的关闭事件

    FROM : http://blog.ityao.com/archives/581 如果想用Flash/Flex监听浏览器的关闭事件, 可以通过JavaScript的window.onbeforeun ...

  9. 【webview】微信和PC监听浏览器关闭和刷新(亲测可用)

    监听浏览器关闭和刷新 前言 PC端 微信端 前言 最近做的项目里有一个新的需求,在不同的浏览器内打开的网页,监听用户的操作,比如关闭浏览器,刷新浏览器等等. 这就涉及到了几个平台:PC端浏览器,移动端 ...

  10. html5中页面关闭事件监听,JS针对浏览器窗口关闭事件的监听方法集锦

    本文实例总结了JS针对浏览器窗口关闭事件的监听方法.分享给大家供大家参考,具体如下: 方式一:(适用于IE浏览器,而且刷新不提示,只在点击浏览器关闭按钮的时候提示) window.οnbefοreun ...

最新文章

  1. Python 之 matplotlib (十六)Animation动画
  2. WPF 将Bitmapsource转换到Emgu.cv.image
  3. 易语言单窗口单ip软件源码_梦幻西游怎样多开ip转金?十大攻略秘籍速来看
  4. 院士:青年科学家5年内拿不出成果就面临淘汰,想坐‘冷板凳’都坐不了!
  5. linux下文件颜色说明
  6. Java使用递归实现全排列的代码
  7. 如何删除pdf中计算机属性,PDF文件做好后怎么修改
  8. C#空值和null判断
  9. 修改maven默认仓库(即repository)的路径
  10. 微软BI SSIS 2012 辅助阅读博客
  11. yii2基础之分页的基本使用及其配置详解
  12. Linux O(1)调度器
  13. JAVA SE 7虚拟机规范
  14. 【搜狗输入法安装包文件有异常,错误码:2,现在终止安装】解决办法
  15. 华为云服务器测试并用docker快速搭建2048网站
  16. 淘宝天猫返利,是怎么一种运作模式?
  17. 开发APP需要准备哪些工作
  18. 作为一名程序员未来的出路究竟在哪里?
  19. Linux基础命令(管理工具)
  20. 《重构-改善既有代码的设计》第三章(上)

热门文章

  1. mac设置第三方输入法为默认输入法
  2. 无穷级数求和7个公式_这些的公式是怎么得到的?
  3. 使用python编写十二进制与十进制转换程序
  4. 微信小程序---配置微信商户平台进行微信支付操作指南以及踩坑记录
  5. arduino超声波测距接线图详细_Arduino学习笔记A2 - Arduino连接超声波传感器测距
  6. 深度神经网络——中文语音识别
  7. AI笔记: 数学基础之贝叶斯公式(概率公式)
  8. 阿里云服务器公网带宽下载上传速度及测速Ping值测试工具
  9. ACL(标准/扩展访问控制列表)
  10. oracle 索引的整理