区别如下:
1、localStorage和sessionStorage一样都是用来存储客户端临时信息的对象。
2、他们均只能存储字符串类型的对象(虽然规范中可以存储其他原生类型的对象,但是目前为止没有浏览器对其进行实现)。
3、localStorage生命周期是永久,这意味着除非用户显示在浏览器提供的UI上清除localStorage信息,否则这些信息将永远存在。
4、sessionStorage生命周期为当前窗口或标签页,一旦窗口或标签页被永久关闭了,那么所有通过sessionStorage存储的数据也就被清空了。
5、不同浏览器无法共享localStorage或sessionStorage中的信息。相同浏览器的不同页面间可以共享相同的 localStorage(页面属于相同域名和端口),但是不同页面或标签页间无法共享sessionStorage的信息。这里需要注意的是,页面及标 签页仅指顶级窗口,如果一个标签页包含多个iframe标签且他们属于同源页面,那么他们之间是可以共享sessionStorage的。
localStorage 是指本地存储的意思。
比 cookies 能存更大的数据,可以在开发者工具中的 Application 栏找到 localStorage。
JS 则通过访问 localStorage 对象来读写本地存储,localStorage 对象本身比较简单,有为数不多的几个 API:
key(n) - 返回第 n 个键名,则个函数用得较少
getItem(key) - 返回指定 key 的值
setItem(key, value) - 设置指定 key 的值
removeItem(key) - 移除指定 key 的数据项
clear() - 清除所有的数据项
此外还有一个 length 属性,代表当前有多少个数据项。
localStorage 和 sessionStorage 都是继承自 Storage 类,因此它们的 API 是一致的。
唯一不同的是 session 的数据项生命周期是页面关闭之前,localStorage 若不清除则永久存储。
我们一般不会直接操作 localStorage,可以借助第三方库(如 store2,fastore.js)加快使用效率。