前端存储 (2) - sessionStorage ,localStorage

本文详细介绍了sessionStorage和localStorage这两个浏览器API,它们用于在当前域名下存储信息。文章对比了两者在生命周期、语法、存储大小等方面的区别,并提供了正确的存储数组和对象的方法。此外,还介绍了一种常见的使用方式,即利用sessionStorage存储用户信息。

sessionStorage ,localStorage 存储

目录

  • 定义
  • 生命周期
  • 语法
  • 存储大小
  • 注意点

定义

sessionStorage ,localStorage 浏览器提供的api,
可以在当前域名下存储信息,只能存储 string

生命周期

sessionStorage 是关闭当前 tab页 就清楚了,localStorage 一直都在,关闭浏览器也会存在

语法

存储

sessionStorage.setItem(key,value);

 sessionStorage.setItem("userName","王五");

获取

var result = sessionStorage.getItem(key);

清除
sessionStorage.clear();

存储大小 5Mb 左右

测试 当前浏览器存储大小 http://dev-test.nemikor.com/w...

注意点

存储的时候 value 要是 string ,不要用数组 或者 对象

数组
// 错误处理方式
sessionStorage.setItem("a",[1,2,3,4,5])
sessionStorage.getItem("a")   // "1,2,3,4,5"  这样处理的话,返回成了一个 string,得自己在转换成 数组

// 正确处理方式
sessionStorage.setItem("a",JSON.stringify([1,2,3,4,5]))
JSON.parse(sessionStorage.getItem("a") )  // [1,2,3,4];


对象
// 错误处理方式
sessionStorage.setItem("a",{id:"134",name:"33"})
sessionStorage.getItem("a")  //  "[object Object]"  ,返回的这种数据都没得办法处理


// 正确处理方式
sessionStorage.setItem("a",JSON.stringify({id:"134",name:"33"}))
JSON.parse(sessionStorage.getItem("a") ); //  {id:"134",name:"33"}

常见使用方式

sessionStorage 可以存储些用户信息,在浏览器关闭前不怎么改变的 比方下拉框

getSelectData("userType",function(data){

  console.log(data);

});


 function  getSelectData(key,callback){

     var storeMap = {};

     var key_url = {
     "user": 'api/user',
     "orderStatus":'api/order/status',
     "userType": "api/user/type"

     }

     var result = getStore(key);
     if(result){
        callback(result);
        return ;
     }

     $.get(key_url[key],).done(function(data){
        setStore(key,data);
        callback(data);
     });

     function setStore(key,value){
            sessionStorage.setItem(key,JSON.stringify(value))
     }

     function getStore(key){
        var result = sessionStorage.getItem(key);
        if(!result){
            return null;
        }
        return JSON.parse(result)
     }

 }
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值