首頁  >  文章  >  web前端  >  js本地儲存解決方案—localStorage與userData

js本地儲存解決方案—localStorage與userData

黄舟
黄舟原創
2017-02-25 13:36:11917瀏覽

WEB應用的快速發展,是的本地儲存一些資料也成為一種重要的需求,實現的方案也有很多,最普通的就是cookie了,大家也常都用,但是cookie的缺點是顯而易見的,其他的方案例如:IE6以上的userData,Firefox下面的globalStorage,以及Flash的本地存儲,除了Flash之外,其他的幾個都有一些兼容性的問題。

sessionStorage與localStorage

Web Storage其實由兩部分組成:sessionStorage與localStorage。

sessionStorage用於本地儲存一個會話(session)中的數據,這些數據只有在同一個會話中的頁面才能存取並且當會話結束後資料也隨之銷毀。因此sessionStorage不是持久的本機存儲,只是會話層級的儲存。

localStorage用於持久化的本地存儲,除非主動刪除數據,否則數據是永遠不會過期的。

userData

語法:

XML  <Prefix: CustomTag ID=sID STYLE="behavior:url(&#39;#default#userData&#39;)" />

HTML  <ELEMENT STYLE="behavior:url(&#39;#default#userData&#39;)" ID=sID>

Scripting    object .style.behavior = "url(&#39;#default#userData&#39;)"

object.addBehavior ("#default#userData")

屬性:

  • expires 設定或取得 userData behavior 儲存資料的失效日期。

  • XMLDocument 取得對 XML 的參考。

方法:

  • getAttribute() 取得指定的屬性值。

  • load(object) 從 userData 儲存區載入儲存的物件資料。

  • removeAttribute() 移除物件的指定屬性。

  • save(object) 將物件資料儲存到一個 userData 儲存區。

  • setAttribute() 設定指定的屬性值。

localStorage

方法:

  • #localStorage.getItem(key):取得指定key本機儲存的值

  • localStorage.setItem(key,value):將value儲存到key欄位

  • ##localStorage.removeItem(key):刪除指定key本機儲存的值

封裝

localData = {
    hname:location.hostname?location.hostname:&#39;localStatus&#39;,
    isLocalStorage:window.localStorage?true:false,
    dataDom:null,

    initDom:function(){ //初始化userData
        if(!this.dataDom){
            try{
                this.dataDom = document.createElement(&#39;input&#39;);//这里使用hidden的input元素
                this.dataDom.type = &#39;hidden&#39;;
                this.dataDom.style.display = "none";
                this.dataDom.addBehavior(&#39;#default#userData&#39;);//这是userData的语法
                document.body.appendChild(this.dataDom);
                var exDate = new Date();
                exDate = exDate.getDate()+30;
                this.dataDom.expires = exDate.toUTCString();//设定过期时间
            }catch(ex){
                return false;
            }
        }
        return true;
    },
    set:function(key,value){
        if(this.isLocalStorage){
            window.localStorage.setItem(key,value);
        }else{
            if(this.initDom()){
                this.dataDom.load(this.hname);
                this.dataDom.setAttribute(key,value);
                this.dataDom.save(this.hname)
            }
        }
    },
    get:function(key){
        if(this.isLocalStorage){
            return window.localStorage.getItem(key);
        }else{
            if(this.initDom()){
                this.dataDom.load(this.hname);
                return this.dataDom.getAttribute(key);
            }
        }
    },
    remove:function(key){
        if(this.isLocalStorage){
            localStorage.removeItem(key);
        }else{
            if(this.initDom()){
                this.dataDom.load(this.hname);
                this.dataDom.removeAttribute(key);
                this.dataDom.save(this.hname)
            }
        }
    }
}

 以上就是js本地儲存解決方案—localStorage與userData的內容,更多相關內容請關注PHP中文網(www.php.cn) !




#

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn