美文网首页
localStorage使用

localStorage使用

作者: 汪槑槑2017 | 来源:发表于2017-12-28 09:59 被阅读29次

    /*

    * @Author: iLonge

    * @Date: 2018-07-02 08:47:55

    * @Last Modified by: iLonge

    * @Last Modified time: 2018-07-02 10:25:23

    * 日常用函数的封装

    */

    // localStorage

    var Storage = {

        /**

        * 获取

        * 在获取时处理,如果是JSON格式,那么将其转换为JSON,而不是字符串

        */

        get : function(key) {

            var value = localStorage.getItem(key);

            if(value) {

                try {

                  var value_json = JSON.parse(value);

                  if(typeof value_json === 'object') {

                      return value_json;

                  } else if(typeof value_json === 'number') {

                      return value_json;

                  }

                } catch(e) {

                    return value;

                }

            } else {

                return false;

            }

        },

        /**

        * 设置

        * 考虑到可能会达到大小限制,因此加上错误捕捉

        */

        set: function(key,value) {

            try {

                localStorage.setItem(key, value);

            } catch (e) {

                if (this.isQuotaExceeded(e)) {

                    console.log('Storage full');

                }

            }

        },

        // 删除

        remove: function(key) {

            localStorage.removeItem(key);

        },

        // 清除

        clear: function() {

            localStorage.clear();

        },

        /**

        * 批量保存,data是一个字典

        */

        setList: function(list) {

            for (var i in list) {

                localStorage.setItem(i, list[i]);

            }

        },

        /**

        * 批量删除

        */

        removeList: function(list) {

            for(var i=0, len = list.length; i < len; i++) {

                localStorage.removeItem(list[i])

            }

        },

        /**

        * 大小限制

        */

        isQuotaExceeded: function(e) {

            var quotaExceeded = false;

            if (e) {

                if (e.code) {

                    switch (e.code) {

                        case 22:

                        quotaExceeded = true;

                        break;

                        case 1014:

                        // Firefox

                        if (e.name === 'NS_ERROR_DOM_QUOTA_REACHED') {

                            quotaExceeded = true;

                        }

                        break;

                    }

                } else if (e.number === -2147024882) {

                    // Internet Explorer 8

                    quotaExceeded = true;

                }

            }

            return quotaExceeded;

        },

        /**

        * 是否支持localStorage存储

        */

        isSupport: function() {

            if (window.localStorage) {

                alert('支持')

                return true;

            } else {

                alert('您的浏览器不支持localStorage存储')

                return false

            }

        }

    }

    相关文章

      网友评论

          本文标题:localStorage使用

          本文链接:https://www.haomeiwen.com/subject/sxsmgxtx.html