html5本地存储类库

//html5本地存储类库
var storage = {
    // key前缀,用于区分同一个项目中其它类库使用的缓存
    prefix: "uid_",
    /**
     * 缓存本地数据
     * @param key
     * @param value
     */
    setLocalItem: function (key,value) {
        var dataType = this.getDataType(value);
        var data = value;
        switch (dataType) {
            case "Array":
                data = value.join(",");
                break;
            case "Object":
                data = JSON.stringify(value);
                break;
        }
        localStorage.setItem(this.prefix+key,data);
    },

    /**
     * 获取指定key的本地缓存数据
     * @param key
     */
    getLocalItem: function (key) {
        var value = localStorage.getItem(this.prefix+key);
        return this.getFormatItem(value);
    },

    /**
     * 删除指定key的本地缓存数据
     * @param key
     */
    removeLocalItem: function (key) {
        localStorage.removeItem(this.prefix+key);
    },

    /**
     * 清空本地缓存数据
     */
    clearLocal: function () {
        //localStorage.clear();
        var keys = [];
        var len = localStorage.length;
        //遍历出所有key
        for (var index=0; index<len;index++) {
            var key = localStorage.key(index);
            if (key == null) {
                continue;
            }
            if (key.indexOf(this.prefix) == 0) {
                keys.push(key);
            }
        }
        for (var i=0;i<keys.length;i++) {
            localStorage.removeItem(keys[i]);
        }
    },

    /**
     * 获取本地所有缓存数据
     * @returns {{}}
     */
    getLocal: function () {
        var data = {};
        var len = localStorage.length;
        for (var index=0; index<len;index++) {
            var key = localStorage.key(index);
            if (key == null) {
                continue;
            }
            if (key.indexOf(this.prefix) == -1) {
                continue;
            }
            var value = localStorage.getItem(key);
            data[key.replace(this.prefix,"")] = this.getFormatItem(value);
        }
        return data;
    },

    /**
     * 缓存Session会话数据
     * @param key
     * @param value
     */
    setSessionItem: function (key,value) {
        var dataType = this.getDataType(value);
        var data = value;
        switch (dataType) {
            case "Array":
                data = value.join(",");
                break;
            case "Object":
                data = JSON.stringify(value);
                break;
        }
        sessionStorage.setItem(this.prefix+key,data);
    },

    /**
     * 获取指定key的Session缓存数据
     * @param key
     */
    getSessionItem: function (key) {
        var value = sessionStorage.getItem(this.prefix+key);
        return this.getFormatItem(value);
    },

    /**
     * 删除指定key的Session缓存数据
     * @param key
     */
    removeSessionItem: function (key) {
        sessionStorage.removeItem(this.prefix+key);
    },

    /**
     * 清空Session缓存数据
     */
    clearSession: function () {
        //sessionStorage.clear();
        var keys = [];
        var len = sessionStorage.length;
        //遍历出所有key
        for (var index=0; index<len;index++) {
            var key = sessionStorage.key(index);
            if (key == null) {
                continue;
            }
            if (key.indexOf(this.prefix) == 0) {
                keys.push(key);
            }
        }
        for (var i=0;i<keys.length;i++) {
            sessionStorage.removeItem(keys[i]);
        }
    },

    /**
     * 获取Session会话所有缓存数据
     * @returns {{}}
     */
    getSession: function () {
        var data = {};
        var len = sessionStorage.length;
        for (var index=0; index<len;index++) {
            var key = sessionStorage.key(index);
            if (key == null) {
                continue;
            }
            if (key.indexOf(this.prefix) == -1) {
                continue;
            }
            var value = sessionStorage.getItem(key);
            data[key.replace(this.prefix,"")] = this.getFormatItem(value);
        }
        return data;
    },

    /**
     * 格式化数据
     * @param value
     * @returns {*}
     */
    getFormatItem: function (value) {
        var data = value;
        if (this.isJsonString(value)) {
            data = JSON.parse(value);
        }
        return data;
    },

    /**
     * 获取数据类型
     * @param value
     * @returns {*}
     */
    getDataType: function (value) {
        if (typeof value == "object") {
            if (typeof value.length == "number") {
                return "Array";
            }
            return "Object";
        }
        return "String";
    },

    /**
     * 判断是否是json字符串
     * @param value
     * @returns {boolean}
     */
    isJsonString: function (value) {
        try {
            if (typeof JSON.parse(value) == "object") {
                return true;
            }
        } catch(e) {
        }
        return false;
    }
};

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值