my.setstoragesync(object object)
支小宝客户端 支持
安诊儿客户端 支持
小程序开发者工具: 支持。
主体: 企业支付宝小程序 、 个人支付宝小程序
同步保存数据到本地缓存。
该 key 原来对应的内容会被覆盖。单个 key 允许存储的最大数据长度为 200kb,所有数据存储上限为 10mb。
缓存数据在小程序退出/重新进入以后仍然存在,除非因存储空间原因被系统清理,或者小程序被用户主动删除。
object object
查看示例
属性 | 类型 | 默认值 | 必填 | 描述 |
---|---|---|---|---|
data | unknown | - | 是 | 需要存储的内容。可以是任意类型 |
key | string | - | 是 | 本地缓存中指定的 key。不接受空字符串 |
object
参数
object res
属性 | 类型 | 描述 |
---|---|---|
success | boolean | 是否存储成功。 |
error | number | 错误码。错误码只会在出现错误时返回。 |
errormessage | string | 错误信息。错误码只会在出现错误时返回。 |
fail 回调的参数为 object,error
属性为错误码,errormessage
属性为错误消息。
错误码 | 错误消息 | 凯发app官方网站的解决方案 |
---|---|---|
2 | 必填参数为空。 |
请确保入参 key 或 data 类型正确且不为空。 |
12 | 存储总大小达到上限。 |
单个小程序数据存储上限为 10mb。可以通过 my.removestorage 或 my.removestoragesync 及时移除不必要的存储。 |
14 | data长度超限。 |
单个 key 允许存储的最大数据大小为 200kb,可以减少 data 长度或拆分成多个 key 进行存储 |
let res = my.setstoragesync({
key: 'currentcity',
data: {
cityname: '杭州',
adcode: '330100',
spell: ' hangzhou',
},
});
console.log(res);
if (res.success) {
console.log("执行成功");
}
-
tip当发生错误时,安卓会在返回结果中包含一个 success 属性并将其设置为 false,同时返回错误码和错误信息。而 ide 和 ios 则直接返回错误码和错误信息,不再返回 success 属性。建议利用 res.success 或 !res.error 判断功能是否执行成功。
-
tip同步方法 my.setstoragesync 会阻塞当前任务,直到同步方法处理返回。异步方法 my.setstorage 不会阻塞当前任务。
-
tipios 客户端支持 itunes 备份。
q:缓存 api 存储的缓存什么情况下会被清除?
卸载支付宝客户端会清除缓存数据;长期未使用或在应用中心删除的小程序的缓存数据也会被系统清理。覆盖安装支付宝(不是先删除再安装)、支付宝设置中心清除缓存、关闭小程序,这三种操作不会导致小程序缓存失效。
q:如何主动清除缓存?
可以通过 my.clearstorage 或 my.clearstoragesync 清除当前小程序下的本地数据缓存, 通过 my.removestorage 或 my.removestoragesync 移除指定 key 的本地缓存。
q:插件和小程序的存储是否互通?
插件和小程序的缓存存储不通用,独立隔离。
q:小程序缓存到达 10mb 后会清除之前的数据再写入还是写入报错?
当超过 10mb 会无法继续写入,并提示:error 12,data 长度超限。可以通过 my.removestorage 或 my.removestoragesync 及时移除不必要的存储。