首页 > 其他 > 详细

对浏览器storage的操作

时间:2017-08-19 19:47:48      阅读:275      评论:0      收藏:0      [点我收藏+]
var storage=(function(opts) {
    ‘use strict‘;
    function StorageHandle(storage) {
        this.storage = window[storage] || window.sessionStorage;
    }
    StorageHandle.prototype = {
        constructor: StorageHandle,
        //存入session的方法
        setItem: function(key, param) {
            if (typeof param == ‘object‘) {
                this._setStorages(key, param);
            } else {
                this._setStorage(key, param);
            }
        },
        _setStorage: function(key, val) {
            this.storage.setItem(key, val);
        },
        _setStorages(key, obj) {
            var l = JSON.stringify(obj);
            this.storage.setItem(key, l);
        },
        //获取数据,传入获取的name
        getItem: function(key) {
            var data = this.storage.getItem(key);
            if(!!data){
                console.warn(‘当前session中没有‘+key+‘这个参数‘);
            }
            return JSON.parse(data);
        },
        //一次获取多个key
        getItems: function(obj) {
            if (typeof obj !== ‘object‘) {
                console.error(‘此方法需要一个对象‘);
                return false;
            }
            var objType = Object.prototype.toString.call(obj);
            //结果用一个对象来表示
            var res = {};
            if (objType === ‘[object Array]‘) {
                for (var i of obj) {
                    let val = this.getItem(i);
                    res[i] = val;
                }
            } else if (objType === ‘[object Object]‘) {
                for (var i in obj) {
                    if (obj.hasOwnProperty(i)) {
                        res[i] = this.getItem(obj[i]);
                    }
                }
            }
            return res;
        }
    }
     return new StorageHandle(opts);
});

调用方法有以下几种

var f=storage();
f.setItem(‘123‘,[1,34,5,6,‘fasd‘])
f.setItem(‘123‘,‘12314234‘);
f.setItem(45,6546456)
console.log(f.getItems([‘123‘,45]))
console.log(f.getItems({a:‘123‘,b:45}))
console.log(f.getItem(‘123‘));

默认是sessionStorage。如果要用localStorage。

在storage方法中传入一个localStorage参数即可

var f=storage(‘localStorage‘);

用了for of 遍历数组和let ,可能兼容不好。有报错改成普通for循环和var

对浏览器storage的操作

原文:http://www.cnblogs.com/yuweia/p/7397410.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!