web浏览器数据本地存储

来源:csdn博客 分类: 文章浏览史 发布时间:2021-11-27 16:54:17 最后更新:2021-11-27 浏览:149
转载声明:
本文为摘录自“csdn博客”,版权归原作者所有。
温馨提示:
为了更好的体验,请点击原文链接进行浏览
摘录时间:
2021-11-27 16:54:17

在浏览器中存储主要分为以下三种方式

  1. localstorage 2、sessionStorage 3、cookie

 

localStorage

生命周期永久,除非用户清除浏览器中的localStorage信息,否则永远存在;

存放数据大小一般为5MB;

仅在浏览器中保存,不参与服务器通信;

API调用:

    localStorage.setItem("key","value");//以“key”为名称存储一个值“value”

    localStorage.getItem("key");//获取名称为“key”的值

    localStorage.removeItem("key");//删除名称为“key”的信息。

    localStorage.clear();​//清空localStorage中所有信息

 

sessionStorage

仅在当前会话下有效,关闭页面或者浏览器后被清除;

存放数据大小一般为5MB;

仅在浏览器中保存,不参与服务器通信;

可以接受源生接口,亦可以再次封装来对Object和Array有更好的支持;

API调用:

    sessionStorage.setItem("key","value");//以“key”为名称存储一个值“value”

    sessionStorage.getItem("key");//获取名称为“key”的值

    sessionStorage.removeItem("key");//删除名称为“key”的信息。

    sessionStorage.clear();​//清空sessionStorage中所有信息

 

Cookie

生命周期为在cookie设置的过期时间之前一直有效,即使窗口或者浏览器关闭;

存放数据大小为4K;

有存储个数限制(各浏览器不同),一般不超过20个;

与服务器端通信,每次都会携带在HTTP头中,cookie存储数据过多会带来性能问题;

 

localStorage与sessionStorage区别

我经常用到的存储方式为前两种,因此需要清楚了解它们之间的区别。

localStorage与sessionStorage的API调用方法相同;

不同浏览器无法共享localStorage或sessionStorage中的信息;

相同浏览器的不同页面可以共享相同的localStorage(前提是页面属于相同域名和端口);

相同浏览器的不同页面无法共享sessionStorage的信息;

 

需要注意的是:页面及标签页仅指顶级窗口,如果一个标签页包含多个iframe标签且他们属于同源页面,那么他们之间是可以共享sessionStorage的。这句话的意思是说在当前页面打开的链接和页面,可以访问sessionStorage的数据,或者说在当前页面关联的src链接也可以获取到sessionStorage数据。

 

我的应用场景

1、用vue做的后台管理平台,允许打开多个页面,不同页面可登陆不同的用户,用户之间互不干扰。

结合上述信息与要求,如果使用localStorage,因为相同域名和端口,会导致不同页面数据共享,从而引发混乱。如果采用sessionStorage,不同页面即可保证互不干扰,且vue为SPA,无需打开新的页面,因此不会相互干扰。实测可行。

 

以上。

php技术微信