Show:

bui.storage Class

本地数据存储,支持字符串跟对象存储,注意:取的时候是返回一个数组

预览地址: 存字符demo | 存对象demo

Constructor

bui.storage

(
  • [option]
)

Parameters:

  • [option] Object optional
    • [size] Number optional

      存储多少条数据,默认为1 | 0 为不限制

    • [reverse] Boolean optional

      1.4新增 默认true(最新的数据在后面),false(最新的数据在前面,常用于最近历史记录)

    • [deep] Boolean optional

      1.5.4新增 默认false || true; 是否采用逐层取值,部分数据在存数据的时候,存的是一个多维数组,那就需要开启为true;

    • [local] Boolean optional

      默认true 永久存储 | false 临时存储,切换页面则消失

    • [prefix] Boolean optional

      1.5.5新增, 默认 "" , 用于区分不同数据段,clear才能指定清除

Example:

   存储使用示例:
                                    
                                       // 存储1条数据
                                       var storage = bui.storage();
                                           storage.set("username","hello");
                                           storage.set("username","bui");
                                           // 第2个会覆盖第1个
                                    
                                      // 获取所有数据
                                      var data = storage.get("username");
                                      //console.log( data ) ["bui"]
                                    
                                      // 拿到第一条数据的值
                                      var val = storage.get("username",0);
                                      //console.log( val ) "bui"
                                    

多条数据存储示例:

   // 保存数据
                                       var storage = bui.storage({size:2});
                                       //存储第1条数据
                                       storage.set("userinfo",{"id":"n1","name":"hello"},"id");
                                       //存储第2条数据
                                       storage.set("userinfo",{"id":"n2","name":"bui"},"id");
                                       //删除1条数据,通过name值比对
                                       storage.remove("userinfo","hello","name");
                                       // 获取数据,返回一个数组
                                       var data = storage.get("userinfo");
                                    
                                        //console.log( data ) [{"id":"n2","name":"bui"}]
                                    

Item Index

Methods

clear

() chainable

清空本地存储

Example:

       var storage = bui.storage();
                                                           storage.clear();
                                                

get

(
  • key
  • [value]
  • keyname
)
Array

获取存储的数组,或者某条数据

Parameters:

  • key String

    [存储的变量名]

  • [value] String | Number optional

    获取某一条数据,为数字时是在第几条数据,0为第一条数据

  • keyname String

    [在某个字段里面]

Returns:

Array:

返回数组或者某条数据或者undefined

Example:

       var storage = bui.storage();
                                                
                                                       // 获取数组
                                                       var data = storage.get("username");
                                                       //console.log( data ) // ["BUI"]
                                                
                                                       // 获取数组里的第1条数据,才是自己存进去的内容
                                                       var data = storage.get("username",0);
                                                       //console.log( data ) // BUI
                                                
                                                       // 获取数组里的某条数据在某个字段 本地存储的内容为: [{id:"wangws","name":"Fast"},{id:"oubr","name":"BUI"}]
                                                       var data = storage.get("username","oubr","id");
                                                       //console.log( data ) // {id:"oubr","name":"BUI"}
                                                

getAll

(
  • index
)
chainable

Defined in src/scripts/method/bui.storage.js:376

Available since 1.5.5

获取所有本地缓存数据

Parameters:

  • index Object

    [number] 有prefix参数的时候,支持传索引,返回存进去之前的值, 不传则每个keyname返回一个数组]

Example:

       var storage = bui.storage();
                                                       var localObj = storage.getAll();
                                                

remove

(
  • key
  • [value]
  • [keyname]
)
chainable

删除字段的某条信息

Parameters:

  • key String

    [存储的变量名]

  • [value] String | Number optional

    要删的内容 | 索引(在第几个)

  • [keyname] String | Number optional

    字段名 | 长度(1.4新增,配合value是数字时使用)

Example:

       var storage = bui.storage();
                                                
                                                           // 删除第几条数据
                                                           storage.remove("username",0);
                                                
                                                           // 删除第1条包含之后的2条数据
                                                           storage.remove("username",1,2);
                                                           // 删除某条数据
                                                           storage.remove("username","Fast");
                                                
                                                           // 删除某条数据,通过id比对, 如果存储的对象是JSON
                                                           storage.remove("userinfo","n1","id");
                                                

set

(
  • key
  • value
  • [keyname]
)
chainable

以数组保存数据,如果数据是一个对象,需要传keyname,防止数据重复增加.

Parameters:

  • key String

    [存储的变量名]

  • value Object

    [存储的数据,可以是string,也可以是一个对象]

  • [keyname] String optional

    存储的数据的比对唯一键值,不传会导致数据重复,size为1 则都会替换

Example:

       var storage = bui.storage();
                                                           //普通数组无需传字段,不传最后的值默认只存储1条数据
                                                           storage.set("username","Fast");
                                                           //存储对象示例
                                                           storage.set("userinfo",{"id":"n1","name":"Fast"},"id");
                                                

setAll

(
  • name
  • value
)
chainable

Defined in src/scripts/method/bui.storage.js:412

Available since 1.8.3

重新设置整个缓存数组,storage是单条存的,如果整个数组要替换,set方法会设置为 [[]] , 通过setAll,可以让数组变回原来的格式 []

Parameters:

  • name String

    存在哪个字段

  • value Array

    设置整个数组

Example:

       var storage = bui.storage();
                                                
                                                       storage.setAll("keyname",[{name:"bui"}]);