storage
storage
是一个在前端比较常用的模块,可以对本地数据进行存储、修改、删除,并且该数据是永久保存的,除非手动清除或者代码清除。但是,storage
模块有一个限制就是浏览器端(H5)只能存储小于5M的数据,因为在 H5/Web 端的实现是采用 HTML5 LocalStorage API
。而 Android 和 iOS 这块是没什么限制的。 storage 常用在一些被用户经常查询,但是又不频繁更新的数据,比如搜索历史、用户的订单列表等。搜索历史一般情况都是作为本地数据存储的,因此使用 storage 比较合适。而用户订单列表是需要本地存储和服务端器检索配合的场景。当一个用户下单后,会经常查阅个人的订单列表。但是,订单的列表数据不是频繁更新的,往往只有在收到货品时,才更新“已签收”,其余平时的状态是“已发货”。因此,可以使用 storage
存储订单列表,可以减少服务器的压力,例如减少 SQL 查询或者缓存的压力。当用户查看订单详情的时候,再更新数据状态。
setItem(key, value, callback)
// 订单取消订单
orderCancel (orderItem, type) {
var order = JSON.stringify(orderItem)
storage.setItem('orderItem', order, event => {
// modal.toast({ 'message': JSON.stringify(orderItem), 'duration': 3 });
var myurl = getEntryUrl('MyOrderCancelClass')
navigator.push({
url: myurl,
animated: 'true'
})
})
},
WXStorageModule *storage = [[WXStorageModule alloc]init];
AuthEntity *model = [[DataKeeper sharedKeeper].authEntity readFromUserDefaults];
// NSDictionary *user = @{@"auth_token":model.auth_token,@"userId":model.userId,@"userName":model.userName};
[storage setItem:@"auth_token" value:model.auth_token callback:^(id result) {
NSLog(@"==================成功");
WeexRootViewController *rootVc = [[WeexRootViewController alloc]initWithNibName:@"WeexRootViewController" bundle:nil];
rootVc.sourceURL = [NSURL URLWithString:pathUrl];
rootVc.hidesBottomBarWhenPushed = YES;
[self.navigationController pushViewController:rootVc animated:YES];
}];
getItem(key, callback)
storage.getItem('orderItem', event => {
})