bui.storage Class
Constructor
bui.storage
(
-
[option]
Parameters:
-
[option]
Object optional-
[size]
Number optional存储多少条数据,默认为1 | 0 为不限制
-
[reverse]
Boolean optional1.4新增 默认true(最新的数据在后面),false(最新的数据在前面,常用于最近历史记录)
-
[deep]
Boolean optional1.5.4新增 默认false || true; 是否采用逐层取值,部分数据在存数据的时候,存的是一个多维数组,那就需要开启为true;
-
[local]
Boolean optional默认true 永久存储 | false 临时存储,切换页面则消失
-
[prefix]
Boolean optional1.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"}]
Methods
clear
()
chainable
清空本地存储
Example:
var storage = bui.storage();
storage.clear();
get
(
Array
-
key
-
[value]
-
keyname
获取存储的数组,或者某条数据
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
(
chainable
-
index
获取所有本地缓存数据
Parameters:
-
index
Object[number] 有prefix参数的时候,支持传索引,返回存进去之前的值, 不传则每个keyname返回一个数组]
Example:
var storage = bui.storage();
var localObj = storage.getAll();
remove
(
chainable
-
key
-
[value]
-
[keyname]
删除字段的某条信息
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
(
chainable
-
key
-
value
-
[keyname]
以数组保存数据,如果数据是一个对象,需要传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
(
chainable
-
name
-
value
重新设置整个缓存数组,storage是单条存的,如果整个数组要替换,set方法会设置为 [[]] , 通过setAll,可以让数组变回原来的格式 []
Parameters:
-
name
String存在哪个字段
-
value
Array设置整个数组
Example:
var storage = bui.storage();
storage.setAll("keyname",[{name:"bui"}]);