美文网首页
本地存储(Cookie,Session)

本地存储(Cookie,Session)

作者: jxvl假装 | 来源:发表于2019-10-29 00:13 被阅读0次

使用jquery.cookie.js库

本地存储分为cookie,以及新增的localStorage和sessionStorage

  • cookie存储在本地,容量最大是4k,在同源的http请求时(比如请求一张图片)携带传递,损耗带宽,可设置访问路径,只有此路径及此路径的子路径才能访问此cookie,在设置的过期时间之前有效。可以使用cookie存储某些状态(比如第一次进某网站,才弹出一些通知,此后就不再弹出)
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Document</title>
    <script type="text/javascript" src="js/jquery-1.12.4.min.js"></script>
    <script type="text/javascript" src="js/jquery.cookie.js"></script>
    <script type="text/javascript">

        // 设置cookie 过期时间为7天,存在网站根目录下
        //$.cookie('mycookie','ok!',{expires:7,path:'/'});
        //mycookie就相当于键,ok就相当于值

        //读取cookie
        var mycookie = $.cookie('mycookie');
        alert(mycookie);
    </script>
</head>
<body>
    <h1>测试页面</h1>
</body>
</html>

如何查看cookie:

  1. firfox:f12 > 存储 > cookie
  2. chrome:f12 > application > cookies

效果图(注意:先写后读):


在这里插入图片描述

案例:只有第一次浏览网站才弹出弹窗

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Document</title>
    <script type="text/javascript" src="js/jquery-1.12.4.min.js"></script>
    <script type="text/javascript" src="js/jquery.cookie.js"></script>
    <script type="text/javascript">
        $(function(){
            var hasread = $.cookie('hasread');
            //alert(hasread);
            
            // 判断是否存了cookie,没有就弹出弹框
            if(hasread==undefined)
            {
                $('.pop_con').show();               
            }
            
            //用户点击知道后,存cookie,把弹框关掉
            $('#user_read').click(function(){
                $.cookie('hasread','read',{expires:7,path:'/'});
                $('.pop_con').hide();
            })
        })
    </script>
    <script type="text/javascript">
    </script>
    <style type="text/css">
        .pop_con{
            display:none;
        }       
        .pop{
            position:fixed;
            width:500px;
            height:300px;
            background-color:#fff;
            border:3px solid #000;
            left:50%;
            top:50%;
            margin-left:-250px;
            margin-top:-150px;
            z-index:9999;
        }
        .mask{
            position:fixed;
            width:100%;
            height:100%;
            background-color:#000;
            opacity:0.3;
            filter:alpha(opacity=30);
            left:0;
            top:0;
            z-index:9990;
        }
        .close{
            float:right;
            font-size:30px;
        }
    </style>
</head>
<body>
    <div class="pop_con">
        <div class="pop">
            亲!本网站最近有优惠活动!请强力关注!         
            <a href="#" id="close" class="close">×</a>

            <a href="javascript:;" id="user_read">朕知道了!</a>
        </div>
        <div class="mask"></div>
    </div>
    <h1>网站内容</h1>
</body>
</html>
  • localStorage存储在本地,容量为5M或者更大,不会在请求时后携带传递,在所有同源(同一个域名)共享,数据一直有效,除非人为删除,可作为长期数据。不依赖于jquery
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Document</title>
    <script type="text/javascript">
        localStorage.setItem("dat", "456");
        //sessionStorage.setItem('dat1','789');

    </script>
</head>
<body>
    <h1>测试webstorage</h1>
</body>
</html>

效果图:


在这里插入图片描述
  • sessionStorage存储在本地,容量为5M或者更大,不会在请求时候携带传递,在同源的窗口关闭前有效(敏感数据常用)。不依赖于jquery

localStorage和sessionStorage合称WebStorage,WebStorage支持事件通知机制,可以将数据的更新通知监听者,WebStorage的api接口使用更方便

相关文章

网友评论

      本文标题:本地存储(Cookie,Session)

      本文链接:https://www.haomeiwen.com/subject/ebkuuctx.html