Html里面localStorage的用法

localStorage属性允许访问Storage对象Document的原点; 存储的数据将保存在浏览器会话中。 

localStorage类似于sessionStorage,除了当存储的数据localStorage没有到期时间时,存储的数据在sessionStorage页面会话结束时清除 - 也就是说,当页面关闭时。

应该注意,存储在页面协议中的数据localStoragesessionStorage 特定于页面协议的数据

键和值始终是字符串(请注意,与对象一样,整数键将自动转换为字符串)

localStorage 的优势

  1.  localStorage 拓展了 cookie 的 4K 限制。
  2.  localStorage 会可以将第一次请求的数据直接存储到本地,这个相当于一个 5M 大小的针对于前端页面的数据库,相比于 cookie 可以节约带宽,但是这个却是只有在高版本的浏览器中才支持的。

localStorage 的局限

  1. 浏览器的大小不统一,并且在 IE8 以上的 IE 版本才支持 localStorage 这个属性。
  2. 目前所有的浏览器中都会把localStorage的值类型限定为string类型,这个在对我们日常比较常见的JSON对象类型需要一些转换。
  3. localStorage在浏览器的隐私模式下面是不可读取的。
  4. localStorage本质上是对字符串的读取,如果存储内容多的话会消耗内存空间,会导致页面变卡。
  5. localStorage不能被爬虫抓取到。
  6. localStorage 与 sessionStorage 的唯一一点区别就是 localStorage 属于永久性存储,而 sessionStorage 属于当会话结束的时候,sessionStorage 中的键值对会被清空

下面这个例子是教程的例子,一般来说都是以setItem存值,getItem取值的:

<!DOCTYPE html>
<html>
<body>

<div id="result"></div>

<script>
// Check browser support
if (typeof(Storage) !== "undefined") {
    // Store
    localStorage.setItem("lastname", "Gates");
    // Retrieve
    document.getElementById("result").innerHTML = localStorage.getItem("lastname");
} else {
    document.getElementById("result").innerHTML = "抱歉!您的浏览器不支持 Web Storage ...";
}
</script>

</body>
</html>

那么想要让这个属性存储json数据,只能把json转换成string类型的才能存进去了,否则是无法存储的,拿到了也要转换成json格式

localStorage.setItem("records",JSON.stringify(state.records));

取值可以定义一个state,Vue里面的状态管理十分丰富,有机会再记录

const state={
    records:localStorage["records"]?JSON.parse(localStorage["records"]): [],
    nowIndex:0
}

export default state

在其他地方使用时,定义了全局的状态管理后,使用方法如下:

records() {
      return this.$store.state.records;
    }

 

posted @ 2019-09-16 21:58  饮雪俊枫  阅读(1985)  评论(0编辑  收藏  举报