zoukankan      html  css  js  c++  java
  • 前端 本地缓存图片

    localStorage和sessionStorage

    localStorage:永久存储,只要不清除缓存,会一直存在

    sessionStorage:临时存储,只在当前窗口有效,关闭当前窗口或新打开窗口无效

    cookie:可以设置缓存时间

    <!DOCTYPE html>
    <html>
    <head lang="en">
        <meta charset="UTF-8">
        <title></title>
    </head>
    <body>
    <img id="aa"  alt="A close up of an elephant" src="../image/01.png">
    <img id="bb"  alt="A close up of an elephant" src="../image/02.png">
    </body>
    <script>
        var gsFiles = JSON.parse(sessionStorage.getItem("gsFiles")) || {};
        var a = document.getElementById("aa");
        var b = document.getElementById("bb");
        gsFilesDate = gsFiles.date;
        date = new Date();
        todaysDate = (date.getMonth() + 1).toString() + date.getDate().toString();
         function imgLoad(el){
             var imgCanvas = document.createElement("canvas");
             imgContext = imgCanvas.getContext("2d");
    // 确保canvas尺寸和图片一致
             imgCanvas.width = el.width;
             imgCanvas.height = el.height;
    // 在canvas中绘制图片
             imgContext.drawImage(el, 0, 0, el.width, el.height);
    // 将图片保存为Data URI
             if(el == a){
                 gsFiles.a = imgCanvas.toDataURL("bj.png");
             }else{
                 gsFiles.b = imgCanvas.toDataURL("bj.png");
             }
             //gsFiles.el = imgCanvas.toDataURL("bj.png");
             gsFiles.date = todaysDate;
    // 将JSON保存到本地存储中
             try {
                 sessionStorage.setItem("gsFiles", JSON.stringify(gsFiles));
             }
             catch (e) {
                 console.log("Storage failed: " + e);
             }
         }
        // 检查数据,如果不存在或者数据过期,则创建一个本地存储
        if (typeof gsFilesDate === "undefined" || gsFilesDate < todaysDate) {
            // 图片加载完成后执行
            <!--image1-->
            a.addEventListener("load", function () {
                imgLoad(a)
            }, false);
            b.addEventListener("load", function () {
                imgLoad(b)
            }, false);
    // 设置图片
            a.setAttribute("src", "../image/01.png");
            b.setAttribute("src", "../image/02.png");
        }
        else {
    // Use image from sessionStorage
            a.setAttribute("src", gsFiles.a);
            b.setAttribute("src", gsFiles.b);
        }
        console.log(document.cookie)
    </script>
    </html>
    sessionStorage

    sessionStorage和localStorage用法相同

    function setCookie(cname,cvalue,exdays){
        var d = new Date();
        d.setTime(d.getTime()+(exdays*24*60*60*1000));
        var expires = "expires="+d.toGMTString();
        document.cookie = cname+"="+cvalue+"; "+expires;
    }
    function getCookie(c_name){
        if (document.cookie.length>0)
        {
            c_start=document.cookie.indexOf(c_name + "=");
            if (c_start!=-1)
            {
                c_start=c_start + c_name.length+1;
                c_end=document.cookie.indexOf(";",c_start);
                if (c_end==-1) c_end=document.cookie.length;
                return unescape(document.cookie.substring(c_start,c_end))
            }
        }
        return ""
    }
    function checkCookie(){
        var src=getCookie("src"),
            src1=getCookie("src1");
        if (src==""){
            setCookie("src","../image/02.png",30);
            setCookie("src1","../image/01.png",30);
           // alert(1)
        }else{
            //setCookie("src",getCookie("username"),30);
            //alert(2)
        }
        document.getElementById("aa").src=getCookie("src");
        document.getElementById("bb").src=getCookie("src1");
    }
    cookie
  • 相关阅读:
    [恢]hdu 1548
    [恢]hdu 2102
    [恢]hdu 1238
    [恢]hdu 2564
    [恢]hdu 2565
    关于mmu,bootloader,dta以及各种乱七八糟
    总有那些让人XX的词语
    VS2005+SQL2005 Reporting Service动态绑定报表(Web)
    (已测试)在本地处理模式下将数据库数据源与 ReportViewer Web 服务器控件一起使用
    如何在单台计算机上安装 Reporting Services
  • 原文地址:https://www.cnblogs.com/dongxiaolei/p/8663985.html
Copyright © 2011-2022 走看看