localStorage运用(写的时候缓存在当地浏览器)

近来用了下localStorage,因而想纪录加深下映象;

有关更细致的引见,能够去看https://www.cnblogs.com/st-le…

我这引用了这个博客的上风引见:人人能够了解下

一、什么是localStorage、sessionStorage

在HTML5中,新加入了一个localStorage特征,这个特征主假如用来作为当地存储来运用的,处理了cookie存储空间不足的题目(cookie中每条cookie的存储空间为4k),localStorage中平常浏览器支撑的是5M大小,这个在差别的浏览器中localStorage会有所差别。

二、localStorage的上风与范围

localStorage的上风

1、localStorage拓展了cookie的4K限定

2、localStorage会能够将第一次要求的数据直接存储到当地,这个相当于一个5M大小的针对于前端页面的数据库,比拟于cookie能够勤俭带宽,然则这个倒是只要在高版本的浏览器中才支撑的

localStorage的范围

1、浏览器的大小不一致,并且在IE8以上的IE版本才支撑localStorage这个属性

2、现在一切的浏览器中都会把localStorage的值范例限定为string范例,这个在对我们一样平常比较罕见的JSON对象范例须要一些转换

3、localStorage在浏览器的隐私形式下面是不可读取的

4、localStorage本质上是对字符串的读取,假如存储内容多的话会斲丧内存空间,会致使页面变卡

5、localStorage不能被爬虫抓取到

localStorage与sessionStorage的唯一一点区分就是localStorage属于永久性存储,而sessionStorage属于当会话完毕的时刻,sessionStorage中的键值对会被清空

三:运用(本身项目的运用)

html

<!DOCTYPE html>
<html lang="en">
<head>
        <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
        <meta name="viewport" content="user-scalable=no, initial-scale=1, maximum-scale=1, minimum-scale=1, width=device-width">
        <meta http-equiv='x-ua-compatible' content='IE=Edge,chrome=1"' />
        <meta http-equiv="Cache-Control" content="no-siteapp" />
        <meta name="apple-mobile-web-app-capable" content="yes" />
        <meta name="apple-touch-fullscreen" content="yes" />
        <meta name="apple-mobile-web-app-status-bar-style" content="black" />
     
        
        <script type="text/javascript" charset="utf-8" src="js/jquery/jquery-1.11.2.min.js"></script>
        <meta charset="utf-8" />
 
</head>
<body>
       
        <div class="qiandao-right">
                <div class="qiandao-top">
                <div class="just-qiandao qiandao-sprits" id="js-just-qiandao">
                </div>
                <p class="qiandao-notic" id="pHtml">本日未领短信,请马上签到!</p>
                </div>
                <div class="qiandao-bottom">
                <div class="qiandao-rule-list">
                <h4>签到划定规矩</h4>
                <p>每签到取得10条短信的赠予。</p>
                <p>一连签到敬请期待。。。。</p>
                <p>一连签到16天及以上敬请期待。。。。</p>
                </div>
                <div class="qiandao-rule-list">
                <h4>其他申明</h4>
                <p>每签到取得10条短信的赠予,一天只能领取一次</p>
                <p>其他运动敬请期待。。。。</p>
                </div>
                </div>
        </div>
        <div class="qiandao-layer qiandao-active" id="suQian">
                <div class="qiandao-layer-con qiandao-radius">
                <a href="javascript:;" class="close-qiandao-layer qiandao-sprits" id="close"></a>
                <div class="yiqiandao clear">
                <div class="yiqiandao-icon qiandao-sprits"></div><br>
                </div>
                <div class="qiandao-jiangli qiandao-sprits">
                <span class="qiandao-jiangli-num">10<em>条</em></span>
                </div>
                <p>您领取了10条短信<br>已充入您的短信余额!</p>
                </div>
                <div class="qiandao-layer-bg"></div>
        </div>
 
        <script src="js/qianDao.js"></script>
      
 
 
     
</body>
</html>

  css:

*{
margin:0;
padding:0;
}
body,html{
    background: #4d56a3;
}
.head {
    height: 56px;
    background-color: #4d56a3;
    line-height: 56px;
    font-size: 18px;
    color: #fff;
}
.qiandao-right{
    width: 90%;
    margin: 0 auto;
    background: url(../img/qiandao_con.png) no-repeat;
    background-size: 100%;
    padding: 0 20px;
    box-sizing: border-box;
}
.qiandao-top {
    padding-top: 70px;
    height: 13pc;
}
.just-qiandao {
    margin: 0 auto 20px;
    width: 212px;
    height: 67px;
    cursor: pointer;
}
.qiandao-sprits {
    background-image: url(../images/qiandao_sprits.png);
    background-repeat: no-repeat;
}
.qiandao-notic {
    color: #b25d06;
    text-align: center;
    font-size: 18px;
}
.qiandao-rule-list {
    margin-bottom: 35px;
    color: #8d8ebb;
    font-size: 1pc;
    line-height: 26px;
}
.qiandao-rule-list h4 {
    font-weight: bolder;
    font-size: 1pc;
}
.qiandao-rule-list h4,
.qiandao-rule-list p{
    color: #8d8ebb;
}
.qiandao-notic {
    color: #b25d06;
    text-align: center;
    font-size: 18px;
}
.qiandao-sprits.active{
    background-position: 0 -68px;
    pointer-events: none;
}
.qiandao-layer {
    position: fixed;
    top: 0;
    bottom: 0;
    left: 0;
    z-index: 888;
    display: none;
    width: 100%;
}
.qiandao-active .qiandao-layer-con {
    margin: -232px 0 0 -211px;
    width: 422px;
    height: 434px;
}
.close-qiandao-layer {
    position: absolute;
    top: 13px;
    right: 13px;
    width: 1pc;
    height: 1pc;
    background-position: -228px -51px;
}

.qiandao-sprits {
    background-image: url(../images/qiandao_sprits.png);
    background-repeat: no-repeat;
}
.yiqiandao {
    margin: 36px 0 0 40px;
    color: #666;
    font-size: 14px;
    line-height: 38px;
}
.clear {
    clear: both;
}
.yiqiandao .yiqiandao-icon {
    float: left;
    margin: 0 25px;
    width: 178px;
    height: 38px;
    background-position: -217px 0;
}
.qiandao-sprits {
    background-image: url(../images/qiandao_sprits.png);
    background-repeat: no-repeat;
}
.yiqiandao {
    margin: 36px 0 0 40px;
    color: #666;
    font-size: 14px;
    line-height: 38px;
}
.qiandao-jiangli {
    position: relative;
    margin: 45px auto;
    width: 335px;
    height: 170px;
    background-position: 0 -146px;
}
.qiandao-sprits {
    background-image: url(../images/qiandao_sprits.png);
    background-repeat: no-repeat;
}
.qiandao-jiangli span {
    position: absolute;
    top: 58px;
    left: 50px;
    display: block;
    width: 178px;
    height: 106px;
    color: #ff7300;
    text-align: center;
    font-weight: bolder;
    font-size: 30px;
    line-height: 106px;
}
.qiandao-jiangli span em {
    padding-left: 5px;
    font-style: normal;
    font-size: 1pc;
}
.qiandao-layer-bg {
    width: 100%;
    height: 100%;
    background-color: #000;
    opacity: .55;
    filter: alpha(opacity=55);
}
.qiandao-active .qiandao-layer-con {
    margin: 100px auto;
    width: 90%;
    margin-left: 5%;
    height: 440px;
    z-index: 100;
    position: absolute;
    box-sizing: border-box;
}
.qiandao-layer-con {
    
    
    z-index: 999;
    padding-top: 30px;
    border: 3px #33b23f solid;
    border-radius: 5px;
    background-color: #fff;
}
.qiandao-layer-con p{
    text-align: center;
    color: #8c8c8c;
}

.headLeft:active {
    background-color: #363f8e;
}

js

// 点击后结果
function dianJi(){
    localStorage.dateMsg = dateMsg;
    qianDao.classList.add("active");
    pHtml.innerHTML = "本日已领10条短信,请明日继承签到!";
    suQian.style.display = "block";
    
}
//封闭窗口
function closeCk() {
    suQian.style.display = "none";

}


var qianDao = document.getElementById("js-just-qiandao"),
    pHtml = document.getElementById("pHtml"),
    close = document.getElementById("close"),
    suQian = document.getElementById("suQian"),
    dateMsg = new Array;
    date = new Date(),
    dateYear = date.getFullYear(),
    dateMonth = date.getMonth(),
    dateDate = date.getDate();
dateMsg = [dateYear, dateMonth, dateDate];

    
qianDao.addEventListener("click", dianJi);
close.addEventListener("click", closeCk);

(function() {
    var date = new Date(),
        old = new Array,
        dateY = date.getFullYear(),
        dateM = date.getMonth(),
        dateD = date.getDate(),
        newMsg = new Array,
        newMsg = [dateY, dateM, dateD];
    old = localStorage.dateMsg.split(',');
    var oldY = old[0],
        oldM = old[1],
        oldD = old[2];
    if(oldY == dateY && oldM == dateM && oldD == dateD){
        qianDao.classList.add("active");
        pHtml.innerHTML = "本日已领10条短信,请明日继承签到!";
       
    }
    else {
        qianDao.classList.remove("active");
        pHtml.innerHTML = "本日未领短信,请马上签到!";
        localStorage.dateMsg = newMsg;
    }
})(jQuery)

固然只是简朴的运用,代码还没怎样整顿,有不足之处,望指出。

    原文作者:易函123
    原文地址: https://segmentfault.com/a/1190000018306712
    本文转自网络文章,转载此文章仅为分享知识,如有侵权,请联系博主进行删除。
点赞