zoukankan      html  css  js  c++  java
  • localStorage和sessionStorage的区别

    //在chrome测试的结果;

    知识点1:localStorage和sessionStorage的区别; localStorage生命周期是永久,这意味着除非用户显示在浏览器提供的UI上清除localStorage信息,否则这些信息将永远存在。 sessionStorage生命周期为当前窗口或标签页,一旦窗口或标签页被永久关闭了,那么所有通过sessionStorage存储的数据也就被清空了。

    	localStorage的方法:
        	localStorage.clear();
            localStorage.getItem();
            localStorage.key();
            localStorage.setItem();
            localStorage.removeItem();
        
        sessionStorage的方法是在localStorage的方法上多了一个length;
        
        注意 localStorage提供了事件;
        if(window.addEventListener){
            window.addEventListener("storage",handle_storage,false); 
        }else if(window.attachEvent){     
            window.attachEvent("onstorage",handle_storage); 
        }; 
        function handle_storage(e){
            e = e || window.e;
            console.log(e);     
        };
        /*注意:
        storage事件的触发似乎有点问题, 自身页面进行setItem后没有触发window的storage事件, 
        但是同时访问A.html和B.html, 在A页面中进行 setItem能触发B页面中window的storage事件, 
        同样的在B页面中进行setItem能触发A页面中window的storage事件. 
        在IE9中, 页面自身的设值能触发当前页面的storage事件,同样当前页面的设值能触发同一”起源”下其他页面window的storage事件,这看起来似乎更 让人想的通些.
        Read More : http://www.cnblogs.com/shihao/archive/2011/12/23/2298854.html
        */  
        //所以要触发当前页面的localStorage要用自定义事件,我们要自己封装一个;
        var Storage = {
            setItem : function(k,v){
                var se = document.createEvent("StorageEvent");
                se.initStorageEvent('storage', false, false, k, localStorage.getItem(k), v, "", "");
                window.dispatchEvent(se);
                
               localStorage.setItem(k,v);
            },
            removeItem : function(k){
               localStorage.removeItem(k);
                var se = document.createEvent("StorageEvent");
                se.initStorageEvent('storage', false, false, k, localStorage.getItem(k), v, "", "");
                window.dispatchEvent(se);
            }
          };
        //使用自定义事件吧
        window.addEventListener("storage",function(e){
             console.log(e);
        },false);
    //Read More : http://www.cnblogs.com/cczw/p/3196195.html


    //本地存储在各个浏览器中的存在位置(都是在AppData的不同目录下);
    C:UsersUsernameAppDataLocalGoogleChromeUser DataDefaultLocal Storage ; //找到了,保存的事2进制文件
    C:Usersyour-account-nameAppDataLocalMozillaFirefoxProfiles //没找到
    C:UsersXXXAppDataLocalMicrosoftInternet ExplorerDOMStore // can't find
  • 相关阅读:
    如何更好地理解闭包
    抽象类和抽象方法以及和接口区别
    JavaScript中如何理解如何理解Array.apply(null, {length:5})
    Java线程中的同步
    Python前世今生以及种类、安装环境
    大数据中的用户画像
    Java web每天学之Servlet工作原理详情解析
    Go语言操作MySQL数据库
    老集群RAC双网卡绑定
    nmcli配置ipv6
  • 原文地址:https://www.cnblogs.com/diligenceday/p/4073136.html
Copyright © 2011-2022 走看看