• 项目中 关于localstorage、cookie的坑?明明设置了本地存储为什么没生效


    1.简单的介绍一下localStorage,sessionStorage,cookie
    localStorage:仅在客户端存储不参与服务器通信,存储大小一般为5M,如果不是人为清除,那么即使是关闭浏览器也会一直存在。
    sessionStorage:仅在客户端存储不参与服务器通信,存储大小一般为5M,会话级存储,也就是说如果关闭当前页面或者浏览器那么就会清除
    cookie:客户端存储,参与服务器通信,存储大小为4k,可设置生命周期,在设置的生命周期内有效
    
    2.写法
    localStorage.setItem("temp",arr) //存储
    localStorage.getItem("temp") //读取
    localStorage.removeItem("arr"); //删除
    localStorage.clear(); //清空
    注意:存入的数据只能以字符串形式存入
    提供转JOSN数据方法:
    obj = JSON.stringify(obj); //JSON对象转JSON字符串
    obj=JSON.parse(localStorage.getItem("temp2")); //JSON字符串转JSON对象
    -----------------------------------------------------------------------------
    sessionStorage.setItem("temp", arr);   // 存储
    sessionStorage.getItem("temp");   //读取
    跟localStorage写法一样
    -----------------------------------------------------------------------------
    cookie在vue项目中
    cnpm install js-cookie --save //安装
    import Cookies from 'js-cookie'  //引入
    Cookies.set('title', this.form.title) //存储
    this.title = Cookies.get('title') //读取
    原生的cookie自己封装一个即可使用
    
    3.需要注意的点
    1.不同浏览器无法共享localStorage,
    2.相同浏览器的不同页面间可以共享相同的 localStorage但是前提必须是在同一域名和端口下。如果一个标签页包含多个iframe标签且他们属于同源页面,那么他们之间是可以共享sessionStorage的。
    3.在谷歌无痕模式下,localStorage、cookie是读取不到的,但是你可以新增数据然后读取,但是关闭页面后再打开还是会清空。
    
    项目上可能遇到的坑:
    我明明设置了localstorage为什么在新打开的页面中没有获取到?
    我们常常在本地写代码的时候可能会使用的地址是http://localhost:9527,但是我们在项目中新打开一个项目的页面的时候他打开的可能是network地址http://192.168.2.115:9527/所以就会出现读取不到localstorage的情况,这时,我们用network地址打开项目就可以获取到本地存储的值了。network地址和本地地址,域名是不一样的,所以获取不到存储的值。
    
    以上均是个人经验总结,欢迎大家批评指正!
  • 相关阅读:
    仿发送微博限制只发送140个字(一个汉字占位2字节)
    Linux下多任务间通信和同步-信号
    Color
    面试遇到的问题
    Jquery Mobile左右滑动效果
    C++ primer(八)--内联函数 引用变量 引用传递函数参数 函数重载/模板/模板具体化
    Python3 配置文件 解析
    Python MySQL ORM QuickORM hacking
    Python 获取 网卡 MAC 地址
    AttributeError: 'dict_values' object has no attribute 'translate'
  • 原文地址:https://www.cnblogs.com/jtjianfeng/p/11736520.html
Copyright © 2020-2023  润新知