问答详情
源自:2-1 Html5的几种存储形式

动手不好,还好快

什么都是截好的代码,就不能自己手动写嘛!

提问者:ping3444922 2016-06-01 11:16

个回答

  • ICHAYA
    2016-06-02 21:59:37

    应该是老师为了压缩讲课时间,提高效率。

    笔记里也有同学的demo啊。自己写不是更好。

    以下引用sylesu笔记

    本地储存过期策略demo:
    <script>
    function get(key,exp){
    var dataStr=localStorage.getItem(key);
    var dataObj=JSON.parse(dataStr);
    if(new Date().getTime()-dataObj.time>exp){
    console.log('已过期');
    }else{
    console.log( "data="+dataObj.data);
    }
    }

    function set(key,v){
    var curTime=new Date().getTime();
    var timeJson={data:v, time:curTime};
    //JSON.stringify(obj):对象解析出字符串
    localStorage.setItem( key, JSON.stringify(timeJson) );
    }
    </script>

    图片储存:

    <script>
    var src="3.jpg";
    function set(key){
    var img=document.createElement('img');
    img.src=src;
    //pic加载完,触发回调
    img.addEventListener('load',function(){
    var imgCanvas=document.createElement('canvas');
    imgContext=imgCanvas.getContext('2d');
    //确保canvas和pic尺寸一致
    imgCanvas.width=this.width;
    imgCanvas.height=this.height;
    //渲染图片到canvas中
    imgContext.drawImage(this,0,0,this.width,this.height);
    //用data url 的形式取出
    //toDataURL(type)- 返回画布数据,默认类型为 image/png
    var imgAsDataURL=imgCanvas.toDataURL('image/png');
    //保存到本地
    try{
    localStorage.setItem(key,imgAsDataURL);
    }catch(e){
    console.log('失败:'+e);
    }
    },false
    );
    }
    function get(key){
    var srcStr=localStorage.getItem(key);
    var imgObj=document.createElement('img');
    imgObj.src=srcStr;
    document.body.appendChild(imgObj);
    }
    </script>