uni-app【数据缓存API】

news/2024/7/10 1:23:51 标签: uni-app, 前端框架, vue, api, 缓存

数据缓存API

        • uni.setStorage(OBJECT)
        • uni.setStorageSync(KEY,DATA)
        • uni.getStorage(OBJECT)
        • uni.getStorageSync(KEY)
        • uni.getStorageInfo(OBJECT)
        • uni.getStorageInfoSync()
        • uni.removeStorage(OBJECT)
        • uni.removeStorageSync(KEY)
        • uni.clearStorage()
        • uni.clearStorageSync()

uni.setStorage(OBJECT)

将数据存储在本地缓存中指定的 key 中,会覆盖掉原来该 key 对应的内容,这是一个异步接口。

OBJECT 参数说明

参数名类型必填说明
keyString本地缓存中的指定的 key
dataAny需要存储的内容,只支持原生类型、及能够通过 JSON.stringify 序列化的对象
successFunction接口调用成功的回调函数
failFunction接口调用失败的回调函数
completeFunction接口调用结束的回调函数(调用成功、失败都会执行)

示例

uni.setStorage({
	key: 'storage_key',
	data: 'hello',
	success: function () {
		console.log('success');
	}
});

uni.setStorageSync(KEY,DATA)

将 data 存储在本地缓存中指定的 key 中,会覆盖掉原来该 key 对应的内容,这是一个同步接口。

参数说明

参数类型必填说明
keyString本地缓存中的指定的 key
dataAny需要存储的内容,只支持原生类型、及能够通过 JSON.stringify 序列化的对象
try {
	uni.setStorageSync('storage_key', 'hello');
} catch (e) {
	// error
}

uni.getStorage(OBJECT)

从本地缓存中异步获取指定 key 对应的内容。

OBJECT 参数说明

参数名类型必填说明
keyString本地缓存中的指定的 key
successFunction接口调用的回调函数,res = {data: key对应的内容}
failFunction接口调用失败的回调函数
completeFunction接口调用结束的回调函数(调用成功、失败都会执行)

success 返回参数说明

参数类型说明
dataAnykey 对应的内容

示例

uni.getStorage({
	key: 'storage_key',
	success: function (res) {
		console.log(res.data);
	}
});

uni.getStorageSync(KEY)

从本地缓存中同步获取指定 key 对应的内容。

参数说明

参数类型必填说明
keyString本地缓存中的指定的 key

示例

try {
	const value = uni.getStorageSync('storage_key');
	if (value) {
		console.log(value);
	}
} catch (e) {
	// error
}

uni.getStorageInfo(OBJECT)

异步获取当前 storage 的相关信息。

平台差异说明

AppH5微信小程序支付宝小程序百度小程序
HBuilderX 2.0.3+

OBJECT 参数说明

参数名类型必填说明
successFunction接口调用的回调函数,详见返回参数说明
failFunction接口调用失败的回调函数
completeFunction接口调用结束的回调函数(调用成功、失败都会执行)

success 返回参数说明

参数类型说明
keysArray<String>当前 storage 中所有的 key
currentSizeNumber当前占用的空间大小, 单位:kb
limitSizeNumber限制的空间大小, 单位:kb

示例

uni.getStorageInfo({
	success: function (res) {
		console.log(res.keys);
		console.log(res.currentSize);
		console.log(res.limitSize);
	}
});

uni.getStorageInfoSync()

同步获取当前 storage 的相关信息。

平台差异说明

AppH5微信小程序支付宝小程序百度小程序
HBuilderX 2.0.3+

示例

try {
	const res = uni.getStorageInfoSync();
	console.log(res.keys);
	console.log(res.currentSize);
	console.log(res.limitSize);
} catch (e) {
	// error
}

uni.removeStorage(OBJECT)

从本地缓存中异步移除指定 key。

OBJECT 参数说明

参数名类型必填说明
keyString本地缓存中的指定的 key
successFunction接口调用的回调函数
failFunction接口调用失败的回调函数
completeFunction接口调用结束的回调函数(调用成功、失败都会执行)

示例

uni.removeStorage({
	key: 'storage_key',
	success: function (res) {
		console.log('success');
	}
});

uni.removeStorageSync(KEY)

从本地缓存中同步移除指定 key。

参数说明

参数名类型必填说明
keyString本地缓存中的指定的 key

示例

try {
	uni.removeStorageSync('storage_key');
} catch (e) {
	// error
}

uni.clearStorage()

清理本地数据缓存

示例

uni.clearStorage();

uni.clearStorageSync()

同步清理本地数据缓存

示例

try {
	uni.clearStorageSync();
} catch (e) {
	// error
}

注意

uni-app的Storage在不同端的实现不同:

  • H5端为localStorage,浏览器限制5M大小,是缓存概念,可能会被清理
  • App端为原生的plus.storage,无大小限制,不是缓存,是持久化的
  • 各个小程序端为其自带的storage api,数据存储生命周期跟小程序本身一致,即除用户主动删除或超过一定时间被自动清理,否则数据都一直可用。
  • 微信小程序单个 key 允许存储的最大数据长度为 1MB,所有数据存储上限为 10MB。
  • 支付宝小程序单条数据转换成字符串后,字符串长度最大200*1024。同一个支付宝用户,同一个小程序缓存总上限为10MB。
  • 百度、字节跳动小程序文档未说明大小限制
  • 非App平台清空Storage会导致uni.getSystemInfo获取到的deviceId改变

除此之外,其他数据存储方案:

  • H5端还支持websql、indexedDB、sessionStorage
  • App端还支持SQLite、IO文件等本地存储方案。

从HBuilderX2.6.6+起,App-Android平台对本地storage数据存储进行了性能优化,它的具体优化方式和升级注意事项,详见:https://ask.dcloud.net.cn/article/37071


http://www.niftyadmin.cn/n/805880.html

相关文章

【JVM系列】类加载时机

加载时机 引用关系 主动引用(指会触发类加载,有且只有下面6种) 遇到new、getstatic、putstatic或invokestatic这四条字节码指令时,如果类型没有进行过初始化,则需要先触发其初始化阶段。 使用new关键字实例化对象的…

社区表情包总结,看完不动心算我输!

2020倒数最后一天晓衡有幸邀请到成都 Cocos 圈的大佬们一起跨年Happy!回首过去,感恩大家的支持与帮助晓衡又幸存下来了!哦!除了活下来 我们的游戏资源商店也为社区开发者带来超过 20W 的副业收入!感谢大佬发来的贺电&a…

uni-app【网络通信API】

uni-app 网络通信API发起请求uni.request(OBJECT)uni.configMTLS(OBJECT)上传、下载uni.uploadFile(OBJECT)uni.downloadFile(OBJECT)WebSocketuni.connectSocket(OBJECT)uni.onSocketOpen(CALLBACK)uni.onSocketError(CALLBACK)uni.sendSocketMessage(OBJECT)uni.onSocketMess…

【JVM系列】类加载过程

加载过程 阶段 一个类型从被加载到虚拟机内存中开始,到卸载出内存为止,它的整个生命周期将会经历加载(Loading)、验证(Verification)、准备(Preparation)、解析(Resolut…

careercup-排序和查找 11.3

11.3 给定一个排序后的数组,包含n个整数,但这个数组已被旋转很多次,次数不详。请编写代码找出数组中的某个元素。可以假定数组元素原先是按从小到大的顺序排序的。 解法: 可以直接从开始一个一个比较,也可以采用二分查…

前端实现复制小图标效果

效果图&#xff1a;实现代码&#xff1a; 1.<input type"text" id"code" placeholder"注册码" style"width:280px" ><span class"cnblogs_code_copy" style"padding-right:5px;line-height:1.5;"> &…

WCF 请求与响应参数大小设置

IIS部署了一个WCF webservice站点 服务器: winserver2008 .net4.0 开发的WCF 客户端&#xff1a; .net4.0开发的Client&#xff0c; 引用webservice 相关属性官方解释http://msdn.microsoft.com/zh-cn/library/system.servicemodel.basichttpbinding(vvs.110).aspx maxBuffe…

tar命令的使用方法

tar命令的使用方法 tar [-cxtzjvfpPN] 文件与目录参数说明&#xff1a;-c &#xff1a;建立一个打包文件&#xff1b;-x &#xff1a;解开一个打包文件&#xff1b;-t &#xff1a;查看 tar包里面的文件&#xff1b;-z &#xff1a;打包后用gzip压缩&#xff0c;生成.tar.gz文件…