cookie,localStorage,sessionStorage的区别

本文详细对比了WebStorage(localStorage和sessionStorage)与Cookie的区别,包括它们的大小、生命周期、作用域、是否参与服务器通信及API使用。通过一个电商网站广告关闭的例子,展示了localStorage的使用方法。

用一张表格形象简单的说明一下:

 大小生命周期作用域是否参与和服务器的通信API相同点
sessionStorage5M页面关闭死掉(会话级别)不同页或标签之间无法共享

4个方法:

setItem (key, value) 

getItem (key)

removeItem (key)

clear()

都是保存在浏览器端,且是同源的。

存储的数据类型是字符串。

localStorage5M永久不同页面间可以共享(页面属于相同域)与sessionStorage的API一致,原生支持的很好
Cookie4KB(有个数限制,一般不能超过20个)看设置的过期时间不同页面间可以共享需要自己封装,原生的cookie接口不友好

WebStorage提供了一些方法:

  • setItem (key, value) ——  保存数据,以键值对的方式储存信息。
  • getItem (key) ——  获取数据,将键值传入,即可获取到对应的value值。
  • removeItem (key) ——  删除单个数据,根据键值移除对应的信息。
  • clear () ——  删除所有的数据

举个例子来了解一下他们的用法 

比如电商网站官网顶部的广告关闭,效果为第一次进入官网会出现广告,然后点击关闭,刷新网页不会再显示广告,但是当清除localStorage存入的数据,刷新网页会再显示广告,代码如下所示:

html代码

<div class="box">
     <div class="boxSmall">
        <a href="javascript:;"></a>
        <span class="close">x</span>
     </div>
</div> 

css代码: 

.box{
     width:100%;
     height:80px;
     background:rgb(149, 245, 248);
 }
 .boxSmall{
      width:1190px;
      margin:0 auto;
      position:relative;
      background:url("img/close.jpg");
 }
 .boxSmall a{
     width:100%;
     height:80px;
     display:block;
 }
 .close{
     cursor:pointer;
     color:#fff;
     position:absolute;
     top:5px;
     right:5px;
     background:rgb(245, 106, 106);
     width: 20px;
     text-align: center;
     line-height: 20px;
}   

JS代码:  

<script src="http://www.jq22.com/jquery/jquery-1.10.2.js"></script>
<script>
    //localStorage方法
   
    function func(){
        //判断localStorage里有没有isClose
        if(localStorage.getItem("isClose")){             
            $(".box").hide();
        }else{
            $(".box").show();
        }
        //点击关闭隐藏图片存取数据
        $(".close").click(function(){
            $(".box").fadeOut(1000);

            localStorage.setItem("isClose", "1"); 
        })
    }
    func();
</script>

以上的代码执行完后在浏览器中打开点击关闭后再次刷新时也不会出现, 但是当清除localStorage存入的数据,刷新网页会再显示广告,代码如下所示:

<script src="http://www.jq22.com/jquery/jquery-1.10.2.js"></script>
<script>
    //localStorage方法
   
    function func(){
        //判断localStorage里有没有isClose
        if(localStorage.getItem("isClose")){             
            $(".box").hide();
        }else{
            $(".box").show();
        }
        //点击关闭隐藏图片存取数据
        $(".close").click(function(){
            $(".box").fadeOut(1000);

            localStorage.setItem("isClose", "1"); 
        })

        localStorage.clear();   //加入此句清除localStorage存入的数据
    }
    func();
</script>

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值