关闭浏览器窗口的时候,如何清空localStorage的数据

  • 一、对于单页面应用,例如vue等
  • 二、对于多页面应用
    • 1、第一种方案(对于vue)
    • 2、第二种方案(对于原生js)

一、对于单页面应用,例如vue等

window.onbeforeunload监听的方法放在App.vue

<template><div id="main" class="app-main"><router-view></router-view></div>
</template><script>export default {data () {return {theme: this.$store.state.app.themeColor};},methods: {},mounted(){// 关闭浏览器窗口的时候清空浏览器缓存在localStorage的数据window.onbeforeunload = function (e) {var storage = window.localStorage;storage.clear()}}};
</script>

二、对于多页面应用

1、第一种方案(对于vue)

在每一个页面同理只要在mounted方法中,注册这个事件即可

2、第二种方案(对于原生js)

使用cookie作为哨兵,因为cookie默认在你关闭浏览器时会自动消失,我们就在网页打开时判断有没有cookie,如果没有,我们就清除localStorage缓存,然后再设置一个cookie,这样你不关闭浏览器,cookie一直存在,也就是你的localStorage数据会一直存在。

一个例子

//设置cookie
function setCookie(name, value, seconds) {seconds = seconds || 0;   //seconds有值就直接赋值,没有为0    var expires = "";if (seconds != 0) {      //设置cookie生存时间    var date = new Date();date.setTime(date.getTime() + (seconds * 1000));expires = "expires=" + date.toGMTString();}document.cookie = name + "=" + escape(value) + expires + "; path=/";   //转码并赋值
}
function setInof(key, value) {localStorage.setItem(key, value);setCookie(key,value)//存储localStorage的同时,也存储一个cookie来监听
}
 //取得cookie    function getCookie(name) {var nameEQ = name + "=";var ca = document.cookie.split(';'); //把cookie分割成组    for (var i = 0; i < ca.length; i++) {var c = ca[i]; //取得字符串    while (c.charAt(0) == ' ') { //判断一下字符串有没有前导空格    c = c.substring(1, c.length); //有的话,从第二位开始取    }if (c.indexOf(nameEQ) == 0) { //如果含有我们要的name    return unescape(c.substring(nameEQ.length, c.length)); //解码并截取我们要值    }}return false;}if(!getCookie('Token')){//清除localStorage.clear();}

关闭浏览器窗口的时候,如何清空localStorage的数据相关推荐

  1. alert点击完确定关闭浏览器窗口_关务实操技巧:单一窗口缓存4大清理方法,解决部分退单问题...

    前言 2018年"关检融合"之后,中国国际贸易单一窗口(下称"单一窗口")的使用范围进一步扩大.随着通关一体化.无纸化的推进,单一窗口越来越成为进出口企业关务人 ...

  2. alert点击完确定关闭浏览器窗口_为Microsoft Edge浏览器开启标签组功能

    我们在浏览器中打开的网页标签页可能很多,但这么多的标签页通常只属于某几个网站,也就是同一个网站我们可以打开好多个网页,那么如果能把这些属于同一个网站的标签页分成一组,或者能把任意几个标签页分成一组,会 ...

  3. 【Vue】关闭浏览器窗口之前弹出提示

    需求:叉掉浏览器窗口,弹出提示,确认后才会关闭窗口 mounted() {window.addEventListener('beforeunload', e => this.beforeunlo ...

  4. 如何关闭页面之前清空LocalStorage

    文章の目录 一. 前言 二.问题描述 三.解决办法 写在最后 一. 前言 在实际的Vue项目中我们为了做持久化,会使用vuex配合localstorage.cookie.等实现数据的持久化,不至于出现 ...

  5. 浏览器缓存--cookie、sessionStorage、localStorage、indexedDB

    浏览器缓存–cookie.sessionStorage.localStorage.indexedDB cookie 最初用于在客户端存储会话信息 服务器在响应 HTTP 请求时,向客户端发送 Set- ...

  6. flex应用中如何关闭浏览器

    在Actionscript 2及以前,要打开任何网址,只需调用全局函数getURL()即可.在Actionscript 3中,已经取消了getURL()这个全局函数,取而代之的是flash.net包中 ...

  7. chromium 43 如何增加后台运行的插件 关闭浏览器到系统托盘

    增加后台运行插件 有些时候,我们需要关闭浏览器窗口后,到系统托盘,确保浏览器继续运行. 如果用插件的话,只需要运行一个 background 属性的扩展即可. manifest.json 清单文件 { ...

  8. python关闭浏览器、未过期的session_解决因为关闭浏览器造成session失效的假象

    session在服务端保存信息,是否关闭浏览器和session销毁无关,即:即使关闭浏览器,session还是存在的.但是为什么关闭浏览器后session好像就消失了. 1 session和cooki ...

  9. onbeforeunload不触发_关闭浏览器时触发onbeforeunload事件的例子

    例子,onbeforeunload事件示例: 复制代码 代码示例: g_blnCheckUnload = true; function RunOnBeforeUnload() { if (g_blnC ...

最新文章

  1. 移动apn接入点哪个快_移动4g网速最快接入点_2020移动最佳APN接入点
  2. 如何删除chrome地址栏里面曾经输错的地址
  3. iOS开发面试题整理
  4. JavaScript之事件的绑定与移除
  5. AbstractAutowireCapableBeanFactory 类对容器生成的Bean 添加后置处理器
  6. C++ explicit的作用
  7. SEO之Google--PageRank优化剖析(二)
  8. 【调试手段】GDB调试
  9. ad中pcb双面板怎么设置_html中表格tr的td单元格怎么设置宽度属性
  10. golang 使用 goquery 抓取 知乎周刊
  11. 【Flutter系列】第一期——初识Dart语言
  12. UFS 3.1协议分析(第一至四章) -- UFS概述
  13. 计算机会议等级排名,中国计算机学会推荐国际学术期刊(搬运于中国计算机学会)
  14. VMware下ubuntu与windows主机共享文件夹
  15. Win8+CentOS7双系统安装
  16. 分布式事务之柔性事务
  17. 电分糊涂日记之《电路频率响应》
  18. python matplotlib绘制折线图_Matplotlib实践系列:折线图完全示例
  19. 苹果个人账号转公司账号
  20. 微服务——通用分销系统设计

热门文章

  1. 三角形网格 四方形网格_HTML5中3D对象的三角形网格
  2. Cadence 安装FPM 无法调出allegro 环境变量配置
  3. mysql decimal类型最大长度_mysql decimal类型与decimal长度用法详解
  4. 我们80后是怎样的一代人
  5. Linux—教你如何高效的批量网络装机
  6. 品牌连锁店无线覆盖解决方案
  7. SpringMVC框架工作流程图及工作原理
  8. c/cpp中的对数运算的简单归纳
  9. 中式红木全屋整装——营造出更为高雅的品位
  10. 如何导出iPhone手机中app共享文件夹的文件与闪退日志的收集