• cookie、LocalStorage、sessionStorage三者区别以及使用方式


    cookie用来保存客户浏览器请求服务器页面的请求信息

    HTML5的WebStorage提供了两种API:localStorage(本地存储)和sessionStorage(会话存储)

    WebStorage的目的是克服由cookie所带来的一些限制,当数据需要被严格控制在客户端时,不需要持续的将数据发回服务器

    三者的共同点都是保存在浏览器端,且同源

    下面是他们之间的区别

    生命周期

    cookie:可以通过expires设置失效时间,不设置默认关闭浏览器即失效

    localStorage:除非手动清除,否则永久保存

    sessionStorage:仅在当前会话时候生效,关闭页面即失效

    存储大小

    cookie:4KB左右

    localStorage、sessionStorage:可以保存5M的信息

    HTTP请求

    cookie:每次都会携带在http头中,过多使用cookie会带来性能问题

    localStorage、sessionStorage:仅在客户端(即浏览器)中保存,不参与和服务器的通信

    易用性

    cookie:需要程序员自己封装,源生的Cookie接口不友好

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

    应用场景

    cookie:适合识别用户登录

    localStorage和sessionStorage唯一的差别一个是永久保存在浏览器里面,一个是关闭网页就清除了信息

    localStorage:可以用来跨页面传递参数

    sessionStorage:用来保存临时数据,防止用户刷新页面之后丢失参数


    使用方式

    cookie使用方式 移步 https://www.cnblogs.com/theblogs/p/10617515.html

    localStorage和sessionStorage所使用的方法是一样的

    设置本地存储

    localStorage.setItem('user','小明');

    获取本地存储

    localStorage.getItem('user');

    删除本地存储

    localStorage.removeItem('user');

    清除本地存储

    localStorage.clear();

    以sessionStorage为栗子

    var name='sessionData';
    var num=120;
    sessionStorage.setItem(name,num);//存储数据
    sessionStorage.setItem('value2',119);
    let dataAll=sessionStorage.valueOf();//获取全部数据
    console.log(dataAll,'获取全部数据');
    var dataSession=sessionStorage.getItem(name);//获取指定键名数据
    var dataSession2=sessionStorage.sessionData;//sessionStorage是js对象,也可以使用key的方式来获取值
    console.log(dataSession,dataSession2,'获取指定键名数据');
    sessionStorage.removeItem(name); //删除指定键名数据
    console.log(dataAll,'获取全部数据1');
    sessionStorage.clear();//清空缓存数据:localStorage.clear();
    console.log(dataAll,'获取全部数据2'); 

    参考:https://juejin.im/post/5a191c47f265da43111fe859

  • 相关阅读:
    30行代码让你理解angular依赖注入:angular 依赖注入原理
    图片上传插件ImgUploadJS:用HTML5 File API 实现截图粘贴上传、拖拽上传
    HTML5 Application cache初探和企业应用启示
    使用idea的groovy脚本自动创建Jpa的实体
    使用idea的groovy脚本自动创建MybatisPlus的实体
    判断汉字和英文
    PostgreSQL 字符串分隔函数(regexp_split_to_table、regexp_split_to_array)
    golang实现文字云算法
    Java中的String真的无法修改吗
    使用asyncio实现redis客户端
  • 原文地址:https://www.cnblogs.com/theblogs/p/10618289.html
Copyright © 2020-2023  润新知