只要是好东西,都应该主动分享出来,让大家都用起来;鼓励开源,大家一起,为积累更多更好的东西而奋斗!

浏览器本地存储(browser-storage)

BrowserStorage.api.set(obj, enableUD)点击展开

一、接口功能

将数据存储到本地,支持批量存储
在IE8+,以及其他所有非IE(包括内核)的浏览器中,采用HTML5提供的localStorage进行数据存取;
在IE7及其以下版本(包括内核)的浏览器中,采用IE提供的原生UserData进行数据存取;
在其他非主流的浏览器,或者用户关闭IE的UserData功能的时候,采用浏览器cookie进行数据存取

二、参数说明

/**
 * 将数据进行本地存储
 *
 * @param    {Object/Array} obj     待存储数据相关配置,可以是单个JSON对象,也可以是由多个JSON对象组成的数组
 * @p-config {String}       key     待存储数据的key,如:baidu.username
 * @p-config {String}       value   待存储数据的内容
 * @p-config {String}       path    cookie专用,默认为:根目录:"/",要设置到当前目录,则是:"./"
 * @p-config {String}       domain  cookie专用,默认为:当前域名
 * @p-config {Number/Date}  expires 数据的过期时间,可以是数字,单位是毫秒;也可以是日期对象,表示过期时间,
 *                                  如果未设置expires,或设置不合法时,组件会默认将其设置为30天
 * @param    {Boolean} enableUD     参数可选;是否在IE7及其以下版本中启用UserData,默认:false
 */
mark:HTML5提供的localStorage,本身是不支持过期时间的,但在本组件中进行了封装,使其支持过期时间。
另外,考虑到组件的体积,本组件只能保存字符串信息到本地,如需要保存JSON格式数据,可单独下载json-tool组件,用该组件提供的JsonTool.stringify方法对JSON进行字符串转化,用JsonTool.parse方法对字符串进行JSON转化。
另:enableUD参数是可选的,默认为false,表示在IE7及其以下版本的浏览器中,不将数据存储到UserData,而是存储到cookie;
之所以这样做,是因为在IE下的UserData是不支持跨页面通信的,不同的URL对应的页面存储数据,会存放在磁盘上的不同文件中。
如果您的应用就只有一个页面(如:地图、音乐播放器等),建议将enableUD设置为true,以开启较大数据量的存储

三、示例

1、参数为JSON的情况
                    // 参数为JSON,且expires为数字类型
                    BrowserStorage.api.set({
                        "key"       :   "baidufe.author",
                        "value"     :   "Alien",
                        "expires"   :   86400   // Number:(ms)有效期为一天
                    });
                
                    // 参数为JSON,且expires为日期类型
                    BrowserStorage.api.set({
                        "key"       :   "baidufe.author",
                        "value"     :   "Alien",
                        "expires"   :   new Date("2013-04-01") // Date:有效期到4月1日
                    });
                
2、参数为Array的情况
                    // 参数为Array
                    BrowserStorage.api.set([
                        {
                            "key"       :   "baidufe.author",
                            "value"     :   "Alien",
                            "expires"   :   86400
                        },{
                            "key"       :   "baidufe.username",
                            "value"     :   "zxlie",
                            "expires"   :   86400
                        }
                    ]);
                
3、在IE7及其以下版本中启用UserData的情况
                    // 参数为JSON,且expires为数字类型
                    BrowserStorage.api.set({
                        "key"       :   "baidufe.author",
                        "value"     :   "Alien",
                        "expires"   :   86400   // Number:(ms)有效期为一天
                    },true); // 第二个参数设置为true即可,默认为false
                

BrowserStorage.api.get(obj, enableUD)点击展开

一、接口功能

获取在本地存储的数据,支持批量提取
与数据存储方式一致,如果数据是存储在localStorage中,则自动会从localStorage中提取;
如果数据是存储在cookie中,则自动从cookie中提取

二、参数说明

/**
 * 将数据进行本地存储
 *
 * @param    {String/Object/Array} obj  待获取的存储数据相关配置,支持单个对象传入,同样也支持多个对象封装的数组格式
 * @p-config {String}       key         待存储数据的key
 * @param    {Boolean}      enableUD    参数可选;是否在IE7及其以下版本中启用UserData,默认:false
 * @return   {Object/Array}             本地存储的数据,传入为单个对象时,返回单个对象;传入为数组时,返回为数组
 */
mark:enableUD参数是可选的,默认为false,表示在IE7及其以下版本的浏览器中,不将数据存储到UserData,而是存储到cookie;
之所以这样做,是因为在IE下的UserData是不支持跨页面通信的,不同的URL对应的页面存储数据,会存放在磁盘上的不同文件中。
如果您的应用就只有一个页面(如:地图、音乐播放器等),建议将enableUD设置为true,以开启较大数据量的存储

三、示例

1、提取单条数据
                    // 参数为字符串
                    var value = BrowserStorage.api.get("baidufe.author");

                    // 如果获取到数据,结果类似:{key:"baidufe.author", value:"Alien"}

                    // 如果没有获取到数据,结果类似:{key:"baidufe.author", value:null}
                
                    // 参数为JSON
                    var value = BrowserStorage.api.get({
                        key : "baidufe.author"
                    });

                    // 如果获取到数据,结果类似:{key:"baidufe.author", value:"Alien"}

                    // 如果没有获取到数据,结果类似:{key:"baidufe.author", value:null}
                
2、参数为Array的情况
                    // 参数为字符串,且提取多条数据
                    var value = BrowserStorage.api.get([
                        {
                            key : "baidufe.author"
                        },{
                            key : "baidufe.username"
                        }
                    ]);

                    // 如果获取到数据,结果类似:[{key:"baidufe.author", value:"Alien"},{key:"baidufe.username", value:"zxlie"}]

                    // 如果没有获取到数据,结果类似:[{key:"baidufe.author", value:null},{key:"baidufe.username", value:null}]
                
3、强制开启UserData模式进行数据提取
                    // 参数为字符串,且提取多条数据
                    var value = BrowserStorage.api.get({
                        key : "baidufe.author"
                    },true); // 设置enableUD参数为true即可

                    // 如果获取到数据,结果类似:{key:"baidufe.author", value:"Alien"}

                    // 如果没有获取到数据,结果类似:{key:"baidufe.author", value:null}
                
设置enableUD参数为true,表示在IE7及其以下版本中,从UserData中移除数据;
但必须保证数据存储(BrowserStorage.api.set)中,也设置了第二参数enableUD为true,否则获取到的数据为null

BrowserStorage.api.remove(obj, enableUD)点击展开

一、接口功能

移除本地存储的数据,支持批量移除
与数据存储方式一致,如果数据是存储在localStorage中,则自动会从localStorage中移除;
如果数据是存储在cookie中,则自动从cookie中移除

二、参数说明

/**
 * 移除本地存储的数据
 *
 * @param    {String/Object/Array} obj  待移除的存储数据相关配置,支持移除某一个本地存储,也支持数组形式的批量移除
 * @p-config {String}       key         待移除数据的key
 * @p-config {String}       path        cookie专用,默认为:根目录:"/",要设置到当前目录,则是:"./"
 * @p-config {String}       domain      cookie专用,默认为:当前域名
 * @param    {Boolean}      enableUD    参数可选;是否在IE7及其以下版本中启用UserData,默认:false
 */
mark:enableUD参数是可选的,默认为false,表示在IE7及其以下版本的浏览器中,直接从UserData中移除数据。
如果在进行set的时候,指定过domain或者path,这里也必须指定(cookie专用)

三、示例

1、移除单条数据
                    // 参数为字符串
                    BrowserStorage.api.remove("baidufe.author");
                
                    // 参数为JSON
                    BrowserStorage.api.remove({
                        key : "baidufe.author"
                    });
                
2、参数为Array的情况
                    // 参数为字符串,且提取多条数据
                    BrowserStorage.api.remove([
                        {
                            key : "baidufe.author"
                        },{
                            key : "baidufe.username"
                        }
                    ]);
                
3、强制开启UserData模式,从UserData中移除数据
                    // 参数为字符串,且提取多条数据
                    BrowserStorage.api.get({
                        key : "baidufe.author"
                    },true); // 设置enableUD参数为true即可
                
设置enableUD参数为true,表示在IE7及其以下版本中,从UserData中提取数据;
但必须保证数据存储(BrowserStorage.api.set)中,也设置了第二参数enableUD为true,否则数据移除失败

BrowserStorage.api.clearAll(enableUD)点击展开

一、接口功能

清除所有本地存储的数据
与数据存储方式一致,如果数据是存储在localStorage中,则自动会从localStorage中清空;
如果数据是存储在cookie中,则自动从cookie中清空

二、参数说明

/**
 * 清除所有本地存储的数据
 *
 * @param    {Boolean}      enableUD    参数可选;是否在IE7及其以下版本中启用UserData,默认:false
 */
mark:enableUD参数是可选的,默认为false,表示在IE7及其以下版本的浏览器中,直接从UserData中清空数据。

三、示例

1、清空全部数据
                    // 清空全部数据
                    BrowserStorage.api.clearAll();
                
设置enableUD参数为true,表示在IE7及其以下版本中,从UserData中提取数据;
但必须保证数据存储(BrowserStorage.api.set)中,也设置了第二参数enableUD为true,否则数据清空失败

BrowserStorage.api.getAllKeys(enableUD)点击展开

一、接口功能

获取所有的本地存储数据对应的key
与数据存储方式一致,如果数据是存储在localStorage中,则自动会从localStorage中提取;
如果数据是存储在cookie中,则自动从cookie中提取

二、参数说明

/**
 * 移除本地存储的数据
 *
 * @param   {Boolean} enableUD  参数可选;是否在IE7及其以下版本中启用UserData,默认:false
 * @return  {Array}             所有的key
 */
mark:enableUD参数是可选的,默认为false,表示在IE7及其以下版本的浏览器中,直接从UserData中提取数据。

三、示例

1、提取浏览器中已存储的所有key
                    // 提取全部本地存储key
                    var keys = BrowserStorage.api.getAllKeys();

                    // 数据返回格式如:["baidufe.author", "baidufe.username"]

                    // 如果没有本地存储的数据,返回空数组,如:[]
                
设置enableUD参数为true,表示在IE7及其以下版本中,从UserData中提取数据;
但必须保证数据存储(BrowserStorage.api.set)中,也设置了第二参数enableUD为true,否则提取不到数据