localStorage溢出问题

Posted natsu07

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了localStorage溢出问题相关的知识,希望对你有一定的参考价值。

项目使用的store.js库

  store.js库不能管理localStorage中的过期项到时清除,只能在再次调用get的时候才做处理,如果一直不调用get,过期了也还是占用着空间。溢出后,再储存项目时setItem方法会报错exceeded error。特别要注意,如果store.js加载时容量已经满了,store.js由于不能通过setItem方法储存,test返回false,导致不会挂载localStorage库,之后调用store的方法都会报错,因为store属性为undefined。

解决方案:1.挂载store.js前先检测localStorage能否setItem(保证store加载不出错)

2. 加载store.js后,遍历localStorage,用store去get每一项(即清理了过期项)

3. 重写store的set方法,先判断能否setItem(放在try catch里),溢出的话先清空localStorage,再继续。

实际使用时,只执行第二种就可以避免大多数场景下溢出的情况。

 

以上是关于localStorage溢出问题的主要内容,如果未能解决你的问题,请参考以下文章

如何在 HTML5 localStorage 中存储对象?

在 webView 和 CordovaWebView android 之间共享 localStorage

Angular 6:刷新后从localStorage获取令牌

一个简单的换肤code

h5新增浏览器本地缓存localStorage

localStorage溢出问题