zoukankan      html  css  js  c++  java
  • 使用sessionStorage、localStorage存储数组与对象

    先介绍一下localStorage

    localStorage对象是HTML5的客户端存储持久化数据的方案。为了能访问到同一个localStorage对象,页面必须来自同一个域名(子域名无效),使用同一种协议,在同一个端口上。

    过期策略:localstorage永久存储,不过期,除非手动删除,sessionstorage在重启浏览器、关闭页面或新开页面时失效。

    localStorage是Storage类型的实例。有以下的几种方法:

    ①clear():删除所有值。

    ②getItem(name):根据指定的名字name获取对应的值

    ③key(index):在指定的数字位置获取该位置的名字。

    ④removeItem(name):删除由name指定的名值对

    ⑤setItem(name,value):为指定名字设置一个对应的值

     

    localStorage对象可以通过点号调用这些方法。

    例:使用方法来存储数据

    localStorage.setItem("name","songyuhua");//这样就用localStorage存储了一个名字为name的数据,数据的内容为 “songyuhua"

     

    使用方法来读取数据

    localStorage.getItem("name");//这样就读取了名字为“name”的数据的值。

     

    有时候,我们需要将数据存储到sessionStorage和localStorage中,这样做的好处有:

    1 缓存数据

    2 减少对内存的占用

     

    但是,storage只能存储字符串的数据,对于JS中常用的数组或对象却不能直接存储。

    var obj = { name:'Jim' };

    sessionStorage.obj = obj;

    localStorage.obj = obj;

     

    var arr = [1,2,3];

    sessionStorage.obj = arr;

    localStorage.obj = arr;

     

    上面的写法都是不能成功的!但我们可以通过JSON对象提供的parse和stringify将其他数据类型转化成字符串,再存储到storage中就可以了。请看下面的代码。

     

    var obj = { name:'Jim' };

    var str = JSON.stringify(obj);

     

    //存入

    sessionStorage.obj = str;

    //读取

    str = sessionStorage.obj;

    //重新转换为对象

    obj = JSON.parse(str);

     

    localStorage也一样,只是和sessionStorage的存储时间不一样。

    需要注意的是,JS中的数组本质上也是对象类型,所以上面的代码对数组也是适用的。

     

    var arra=[1,2,3,4];

    localStorage.setItem('key',JSON.stringify(arra));

    var read=JSON.parse(localStorage.getItem('key'));

    console.log(read,read.length);

     

  • 相关阅读:
    分析Android中View的工作流程
    什么是分布式锁及正确使用redis实现分布式锁
    机器学习
    吴裕雄--天生自然诗经学习笔记 :醉蓬莱·渐亭皋叶下
    吴裕雄--天生自然诗经学习笔记 :节节高·题洞庭鹿角庙壁
    吴裕雄--天生自然诗经学习笔记 :浪淘沙
    吴裕雄--天生自然诗经学习笔记 :陇头歌辞三首
    吴裕雄--天生自然诗经学习笔记 :贾人食言
    吴裕雄--天生自然诗经学习笔记 :早秋三首
    吴裕雄--天生自然诗经学习笔记 :长相思·惜梅
  • 原文地址:https://www.cnblogs.com/ranyonsue/p/6402687.html
Copyright © 2011-2022 走看看