uniapp的数据缓存
1.uni.setStorage()
uni.setStorage是将我们的数据存储在本地缓存中指定的健值中,会覆盖掉原来的健值对应的内容,是一个异步接口
键 本地缓存中的指定的key
数据 需要存储的内容,只支持原生类型,及能够通过JSON.stringify序列化的对象
成功 连接调用成功的某些函数
失败 连接调用失败的某些函数
完成 关联调用结束的某些函数(调用成功,失败都会执行)
例如:获取缓存的id
getMonitor(){
//org_id 要在data里面定义个空值
this.$get('v1/actives/monitor-list',{org_id:uni.getStorage('id')})
.then(res=>{
console.log(this.org_id)
})
}
2、uni.setStorageSync()
uni.setStorageSync是将数据存储在本地缓存中指定的健值中,会覆盖掉原来的健值对应的内容,是一个同步接口。
键 本地缓存中的指定的key
数据 需要存储的内容,只支持原生类型,及能够通过JSON.stringify序列化的对象
是我认为平常最常用到的一个数据缓存方法
getMonitor(){
this.$get('v1/actives/monitor-list',{org_id:uni.getStorageSync('id')})
.then(res=>{
console.log(this.org_id)
})
}
3、uni.getStorage()
uni.getStorage是从本地缓存中异步获取指定键对应的内容。
键 本地缓存中的指定的key
成功 关联调用的某种函数,res = {data:key对应的内容}
失败 连接调用失败的某些函数
完成 关联调用结束的某些函数(调用成功,失败都会执行)
uni.getStorage({
key: 'id',
success: function (res) {
console.log(res.data);
}
});
4、uni.getStorageSync()
uni.getStorageSync是从本地缓存中同步获取指定key对应的内容。
try {
const value = uni.getStorageSync('id');
if (value) {
console.log(value);
}
} catch (e) {
// error
}
5、uni.getStorageInfo()
uni.getStorageInfo是初步获取当前存储的信息
成功 连接调用的某些函数,详见返回参数说明
失败 连接调用失败的某些函数
完成 关联调用结束的某些函数(调用成功,失败都会执行)
键 数组<字符串> 当前存储中所有的键
目前的规模 数 当前占用的空间大小,单位:kb
limitSize 数 限制的空间大小,单位:kb
uni.getStorageInfo({
success: function (res) {
console.log(res.keys);
console.log(res.currentSize);
console.log(res.limitSize);
}
});
6、uni.getStorageInfoSync()
uni.getStorageInfoSync()是同步获取当前存储的相关信息
try {
const res = uni.getStorageInfoSync();
// console.log(res.keys);
// console.log(res.currentSize);
// console.log(res.limitSize);
} catch (e) {
// error
}
7、uni.removeStorage()
uni.removeStorage()是从本地缓存中异步可移除指定键
参数跟上述相同
uni.removeStorage({
key: 'id',
success: function (res) {
console.log('success');
}
});
8、uni.removeStorageSync()
uni.removeStorageSync()是从本地缓存中同步可移除指定键
try {
uni.removeStorageSync('id');
} catch (e) {
// error
}
9、uni.clearStorage()
uni.clearStorage()是同步清理本地数据缓存
uni.clearStorage()
10、uni.clearStorageSync()
uni.clearStorageSync()是同步清理本地数据缓存
uni.clearStorageSync()
最后我们来了解一下同步与异步的概念
同步方法调用一旦开始,调用者必须等到方法调用返回后,才能继续后续的行为。
异步方法调用更像一个消息传递,一旦开始,方法调用就会立即返回,调用者就可以继续后续的操作。而,异步方法通常会在另外一个线程中,“真实”地执行着。整个过程,不会阻碍调用者的工作。
打个比方,比如我们去购物,如果你去商场实体店买一台空调,当你到了商场看中了一款空调,你就想售货员下单。售货员去仓库帮你调配物品。这天你热的实在不行了。就催着商家赶紧给你配送,于是你就等在商场里,候着他们,直到商家把你和空调一起送回家,一次愉快的购物就结束了。这就是同步调用。
不过,如果我们赶时髦,就坐再家里打开电脑,在网上订购了一台空调。当你完成网上支付的时候,对你来说购物过程已经结束了。虽然空调还没有送到家,但是你的任务都已经完成了。商家接到你的订单后,就会加紧安排送货,当然这一切已经跟你无关了,你已经支付完成,想什么就能去干什么了,出去溜达几圈都不成问题。等送货上门的时候,接到商家电话,回家一趟签收即可。这就是异步调用。
(注:以上内容摘自Java高并发程序设计)