close

註: 本文範例是臨時兜出來的, 如有Bug 再麻煩告之, 日後有修正專案會同步更新本文章

HTML5 LocalStorage 是個很方便的技術, 可以把資料存在客戶端, 一個網站通常很多頁面都會用到, 在多人開發或者是臨時維護他人程式, 這時 Key 的名稱如果取不好很容易把其他的 key(等同value) 給蓋掉, 所以我會把該頁網址當成key, 此時又會碰到另一個問題, 如果我一頁要存很多資料時怎辦, 此時就會衍生出下面的做法來解決這樣的問題

步驟一.  先貼上這段 Obj
var LS = {
    createNew : function(pageKey) {
        var ls = {} ;

        // 通常 引入 pageKey = 網址( javascript: location.pathname )
        ls.key = pageKey;

        // get localStorage by key. if key is empty, auto getAll.
        ls.getStorage = function(key){
            var tmp = window.localStorage[pageKey] ;
            if( typeof(tmp) === 'undefined' ) {
                return 'getStorage - localStorage not fount.' ;
            } else {
                tmp = JSON.parse(tmp) ;
                if( !key ) {
                    return tmp ;
                } else if( typeof(tmp[key]) === 'undefined' ) {
                    return 'localStorage[key] not fount.' ;
                } else {
                    return tmp[key] ;
                }
            }
        };

        ls.setStorage = function(key, val) {
            var tmp = window.localStorage[pageKey] ;
            if( typeof(tmp) === 'undefined' ) {
                var tmpObj = {} ;
            } else {
                var tmpObj = JSON.parse(tmp) ;
            }

            tmpObj[key] = val ;
            window.localStorage[pageKey] = JSON.stringify(tmpObj);
        } ;
        return ls;
    }
} ;

 

步驟二.  貼上下列三行程式碼後重新整理網頁, 到步驟三
var ls = LS.createNew(location.pathname); //先產生 Obj 出來, 跟 new 很像, 帶入值使用 pathname
ls.setStorage('name', 'DL部落'); //設置 key 為 name, value 為 DL部落
//alert(ls.getStorage('name'));

步驟三. 
將步驟二的 第二行 is.ls.setStora... 前面加上註解 //
再將 第三行前面的註解拿掉, 如下
var ls = LS.createNew(location.pathname); //先產生 Obj 出來, 跟 new 很像, 帶入值使用 pathname
//ls.setStorage('name', 'DL部落'); //設置 key 為 name, value 為 DL部落
alert(ls.getStorage('name'));

步驟四.  重新整理網頁
此時就會看到一提示訊息出現

以上...

arrow
arrow
    全站熱搜

    deathfullove 發表在 痞客邦 留言(0) 人氣()