zoukankan      html  css  js  c++  java
  • localStorage应用(写的时间缓存在本地浏览器)

    最近用了下localStorage,于是想记录加深下映象;

    有关更详细的介绍,可以去看https://www.cnblogs.com/st-leslie/p/5617130.html;

    我这引用了这个博客的优势介绍:大家可以了解下

    一、什么是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)
        

    当然只是简单的应用,代码还没怎么整理,有不足之处,望指出。

  • 相关阅读:
    猫眼电影面试经历
    北京市-钟鼓楼
    vipkid 面试经历
    转转面试经历
    二维数组中的查找
    不用除法来实现两个正整数的除法
    牛客网面试经历
    9. Palindrome Number
    Spring 简介
    mysql8 安装配置教程
  • 原文地址:https://www.cnblogs.com/yihan123/p/10388049.html
Copyright © 2011-2022 走看看