• localStorage, sessionStorage,Cookie 三者的异同


    三者都是用于将服务端的数据保存在客户端本地。只不过存放本地的内存大小,生命周期,有区别。

    webstorage是本地存储,存储在客户端,包括localStorage和sessionStorage

    存储方式 localStorage sessionStorage Cookie
    存储大小 5M 5M 4K
    生命周期

    客户端(浏览器)永久性,localStorage存储的数据,

    即使关闭浏览器,也不会让数据消失,除非主动的去删除数据

    客户端保存,仅在当前会话下有效,

    关闭页面或浏览器后被清除

    客户端保存,默认关闭浏览器清除缓存,可设置清除缓存时间
    使用方式
    // 保存数据到 localStorage
    localStorage.setItem("info",data);

    // 从 localStorage 获取数据

    let data = localStorage.getItem('info');

    // 从 localStorage 删除保存的数据

    localStorage.removeItem('info');

    // 从 localStorage 删除所有保存的数据

    localStorage.clear();

     
    // 保存数据到 sessionStorage
    sessionStorage.setItem("info",data);

    // 从 sessionStorage获取数据

    let data = localStorage.getItem('info');

    // 从 sessionStorage删除保存的数据

    sessionStorage.removeItem('info');

    // 从 sessionStorage删除所有保存的数据

    sessionStorage.clear();

    原生, //js-cookie.js
    Cookie.set("userInfo", JSON.stringify(data)); 

     与stroe 状态搭配使用。不使用 stroe,可能会存在登陆成功后locaStorage .sessionStorage 客户端保存数据,无法实时刷新js缓存的情况。还是上一次的缓存。 

    // 设置stroe.js 
    import Vue from "vue";
    import Vuex from "vuex";
    import Cookie from "js-cookie";
    
    Vue.use(Vuex);
    
    export default new Vuex.Store({
      state: {
        //用户信息
        userInfo: {},
        //接口响应loading
        loading: {
          lock: false,
          text: ""
        }
      },
      mutations: {
        //设置用户登录信息
        setUserInfo(state, res) {
          state.userInfo = res;
          // sessionStorage.setItem("userInfo", JSON.stringify(res));
          Cookie.set("userInfo", JSON.stringify(res), { expires: 1 });
        }
      },
      actions: {},
      modules: {}
    });
    
    //main.js 配置
    import store from '../store';
    new Vue({
      store,
      render: h => h(App)
    }).$mount("#app");
    
    
    //登陆成功,保存info信息
    this.$store.commit("setUserInfo", res.data.data);
    
    axios.js 页面调用 
    import store from '../store';
         store.state.userInfo

    查询资料补充:

     本地储存localStorage与cookie的区别

    1,cookie在浏览器与服务器之间来回传递

    sessionStorage和localStorage不会把数据发给服务器,仅在本地保存
    2,数据有效期不同
    cookie只在设置的cookie过期时间之前一直有效,即使窗口或浏览器关闭
    sessionStorage:仅在当前浏览器窗口关闭前有效
    localStorage 始终有效,长期保存
    3,cookie数据还有路径的概念,可以限制cookie只属于某个路径下
    存储大小也不同,cookie数据不能超过4k,sessionStorage和localStorage 虽然也有存储大小的限制,但比cookie大得多,可以达到5M或更大
    4,作用域不用
    sessionStorage不在不同的浏览器窗口中共享
    localStorage在所有同源窗口中都是共享的
    cookie也是在所有同源窗口中都是共享的
    WebStorage 支持事件通知机制,可以将数据更新的通知发送给监听者。Web Storage 的 api 接口使用更方便

    sessionStorage、localStorage和cookie的区别
    1)相同点是都是保存在浏览器端、且同源的
    2)cookie数据始终在同源的http请求中携带(即使不需要),即cookie在浏览器和服务器间来回传递,而sessionStorage和localStorage不会自动把数据发送给服务器,仅在本地保存。cookie数据还有路径(path)的概念,可以限制cookie只属于某个路径下
    3)存储大小限制也不同,cookie数据不能超过4K,同时因为每次http请求都会携带cookie、所以cookie只适合保存很小的数据,如会话标识。sessionStorage和localStorage虽然也有存储大小的限制,但比cookie大得多,可以达到5M或更大
    4)数据有效期不同,sessionStorage:仅在当前浏览器窗口关闭之前有效;localStorage:始终有效,窗口或浏览器关闭也一直保存,因此用作持久数据;cookie:只在设置的cookie过期时间之前有效,即使窗口关闭或浏览器关闭
    5)作用域不同,sessionStorage不在不同的浏览器窗口中共享,即使是同一个页面;localstorage在所有同源窗口中都是共享的;cookie也是在所有同源窗口中都是共享的
    6)web Storage支持事件通知机制,可以将数据更新的通知发送给监听者
    7)web Storage的api接口使用更方便

    参考: https://blog.csdn.net/weixin_42614080/article/details/90706499

  • 相关阅读:
    一个很好用的linux下系统清理工具
    怎样将linux+qt在1S中内启动的幻灯片教程
    通过 ulimit 改善系统性能
    UBI文件系统
    利用BLCR加快Android的启动过程
    工作队列中的sleep导致控制台无法输入问题
    android system setup and building (3)
    物理地址和虚拟地址1 (MMU)
    对 makefile 中 eval 函数的学习体会
    location.href语句与火狐不兼容的问题
  • 原文地址:https://www.cnblogs.com/zhangrh/p/14023492.html
Copyright © 2020-2023  润新知