前端本地储存机制

假设你有一个网站,你想要他登录一次后,七天内就实现免登录,也就是说这个时候你需要在七天之内记住他的登录状态,这时你该怎么办?

解决方法很多,下面是三种前端本地储存的方法

Cookie存储 ⇒ document.cookie = " ";

引号中是键值对形式的数据(需要注意:储存多个数据时 只有第一个键值对会生效.需要储存多条数据,可以使用循环添加数据)

给cookie添加时间:如果不设置时间,cookie默认是在浏览器关闭时清空。

expires:设置到某个具体时间(示例如下)**

var d = new Date();
d.setTime(d.getTime() + 3 * 1000);//给时间d加上三秒
document.cookie = “name=zs;expires=” + d.toUTCString(); //在时间d时,cookie失效

max-age=3600;给数据设置了1小时储存(直接跟时间 单位为秒)

给cookie设置路径:
关于path路径

  1. 在默认的情况下cookie会与【它所在网页、同目录下网页、与这个网页所在目录下的子目录下的网页关联】
  2. 在默认的情况下,除了创建cookie的页面和其同目录下的页面可以直接对cookie进行修改外,这个网页所在目录下的子目录下的网页只能读取而无法修改。
  3. cookie中可以存在同名的属性键,在path不同的情况下,他们可以共存。同样的如果要删除的话也要带上path信息才能删除。
  4. 如上所言,如果想要让外层目录下的网页访问子目录下的cookie的话,那么需要把cookie的path设置为/,表示根目录,那么当前网站的所有页面都可以读取此cookie中设置的值,同时也可以修改cookie值。

修改cookie:
增:document.cookie = “(需要存储的键值对)”
删:将需要删除的cookie的max-age设置为0,expires设置的时间为当前这一刻(pash路径必须一致)
查:document.cookie
改:重新给键值对赋值 如document.cookie = “user = ls”;(就把原来的用户张三改为了李四)

localStorage—永久性本地存储
设置之后就永久有效,在整个网站的所有页面都有效 。一般浏览器支持5M的大小

localStorage的增删查改
可以直接如同一个对象进行操作,也可以使用相应的方法(localStorage–proto–前端本地储存机制
① localStorage的值被设置后,在当前项目(域)下的所有页面都有效。
② localStorage存储引用类型时【如对象与数组】必须要以字符串形式存入

sessionStorage–临时性页面的会话存储

sessionStorage操作上和localStorage一样,可以直接如同一个对象一样操作,也可以使用相应的方法setItem/getItem/clear

① sessionStorage依赖于当前窗口,在当前窗口被关闭后就会销毁
sessionStorage,

② SsessionStorage依赖于窗口,而不依赖于页面。

相关文章: