zoukankan      html  css  js  c++  java
  • localStorage 杂记

    localStorage

    html5标准 Web 存储
    现在的主流浏览器,包括IE 8+、Chrome 4+、Firefox 3.5+、Opera 10.5+、Safari 4+、iPhone 2+、Android 2+等,都支持localStorage本地存储功能。

    localStorage没有时间上的限制,只要不主动删除,会一直保存。
    单条value没有长度限制,但是每个站点使用总量有限制。
    chrome的上限是4.9MB,其它浏览器的容量上限也大都在2.5-10MB之间。

    检测浏览器是否支持localStorage

    function check_localStorage_support()
    {
        if(window.localStorage){
            return true;
        }
        
        alert("Sorry,your browser does NOT support localStorage!");
        return false;
    }

    localStorage 基于键值对存储,读、写、删操作很简单

    localStorage.a = 3;    //设置a为"3"
    localStorage["a"] = "abc";    //设置a为"abc",也覆盖了上面的值
    var a1 = localStorage["a"];    //获取a的值
    var a2 = localStorage.a;    //获取a的值
    console.log(a1 + "	" + a2);
    
    localStorage.setItem("b","I am b");    //设置b为"I am b"
    var b = localStorage.getItem("b");    //获取b的值
    console.log(b);
    localStorage.removeItem("b");    //清除b的值
    console.log(localStorage.getItem("b"));
    
    //输出所有键值对
    function showStorage(){
        var storage = window.localStorage;
        for(var i=0;i<storage.length;i++){
            //key(i)获得相应的键,再用getItem()方法获得对应的值
            document.write(storage.key(i)+ " : " + storage.getItem(storage.key(i)) + "<br>");
        }
    }
    
    //清除所有键值对
    localStorage.clear();            

    添加监听事件(本页面更新不会触发,其它页面更新时才会触发事件)

    if(window.addEventListener){
        window.addEventListener("storage",handle_storage,false);
    }else if(window.attachEvent){
        window.attachEvent("onstorage",handle_storage);
    }
    function handle_storage(e){
        if(!e){e=window.event;}
        //showStorage();
    }
    StorageEvent 对象
    属性 类型 说明
    key string 增加、删除或者修改的那个键
    oldValue any 改写之前的旧值,如果是新增的元素,则是 null
    newValue any 改写之后的新值,如果是删除的元素,则是 null
    url string 触发这个改变事件的页面 URL

    从localStorage读取一个对象

    var chapter = JSON.parse(localStorage.getItem(chapterid));

    使用Jquery Ajax 获取一个json并存入localStorage

    $.getJSON("/worker/json/"+Chapterid+".json",function(result){
        localStorage.setItem(chapterid,JSON.stringify(result));
    }); 

    php生成json的代码

    class chapter_data {
        public $serialid  = 0;
        public $serialtitle = "";
        public $serialcontent = "";
    }
    $chapter = new chapter_data();
    $chapter->serialid  = 1;
    $chapter->serialtitle = "文章标题";
    $chapter->serialcontent = "文章内容";
    echo json_encode($chapter);
  • 相关阅读:
    android布局几点随想
    android_handler(一)
    android surfaView surfaHolder video 播放
    java_synchronized 用法
    android_viewFlipper(一)
    android_handler(二)
    解析pdf文档 (lucene3.5)
    Lucene 搜索(小程序)(Lucene3.5)
    运算符重载(++,<<,>>Data类的重载)
    线程池小程序(Java)
  • 原文地址:https://www.cnblogs.com/edit/p/5780441.html
Copyright © 2011-2022 走看看