更新时间:2022-12-20 15:46:51贡献者收藏我的文档设置返回文档使用限制●缓存数据本地加密存储,通过 api 读取时会自动解密返回。●覆盖安装支付宝(不是先删除再安装)、支付宝设置中心清除缓存、关闭小程序,这三种操作均不会导致小程序缓存失效。●单个 key 允许存储的最大数据大小为 200kb,单个小程序的缓存总上限为 10mb。●小程序缓存默认具有支付宝账号和小程序 id 两级隔离。●ios 客户端支持 itunes 备份。●同步方法会阻塞当前任务,直到同步方法处理返回。异步方法不会阻塞当前任务。常见问题小程序缓存介绍参考小程序缓存介绍。 如何清除支付宝客户端缓存参考如何清除支付宝客户端缓存。 小程序里如何删除缓存数据参考小程序里如何删除缓存数据。 小程序是否支持cookie小程序针对服务端回设的 cookie 不会禁用掉,会设置到小程序进程中,下次小程序进行请求,会自动将已有的 cookie 带入到服务端请求中。前端获取不到 cookie,也不会对 cookie 做任何操作。小程序不建议使用 cookie,推荐使用小程序 缓存。 小程序与h5本地存储对比●h5本地存储,这里特指 localstorageh5 的本地存储在做数据存储的时候,只能存储 string 类型的值。当存储的值需要为 object 类型时,需要在读和写的时候都做一步特殊处理。 小程序本地存储支持 string 和 object 两种数据类型的存储。●数据存储的限制同一个支付宝用户,同一个小程序缓存总上限为 10mb,如果数据超过 10mb,所以切勿将太多的数据存在本地,在某些数据不再使用的时候及时清除。当存储数据大于 10mb 时,存储将会失败。●由于数据存储存储在本地,当更换设备登录时,存储于之前设备上的数据将不再存在。因此,建议将比较重要的数据存储在服务器,通过请求的方式再次获取数据。 插件和小程序的存储是否互通插件和小程序的缓存存储不通用,独立隔离。 如何在服务端获取到小程序缓存小程序通过 my.getstorage 获取到的缓存,可以调用 my.request 方法把缓存的数据当做参数的方式进行传递到服务端获取。 能一次性取多个缓存的值吗将数据存储在本地缓存中指定的 key 中的异步接口 my.getstorage 不支持传入多个 key 值来获取多个缓存,建议用 for 循环调用 my.getstorage 实现。 缓存api存储的缓存什么时候会被清除使用了缓存 api 必须使用清除 api,否则缓存不会被清除掉(先删除再安装支付宝可清除)。 小程序中存入的缓存数据多了一对双引号在调用存入缓存的 api 时使用了 json.stringify 导致。 获取缓存数据的同步接口my.getstoragesync获取不到数据。●排查是否清除了本地的缓存。●排查数据是否存储进入。●检查支付宝客户端版本是否过低,建议升级到最新支付宝客户端。 删除本地小程序会使storage清空么删除本地小程序不会使 storage 清空。小程序缓存可以使用清除本地数据缓存的异步/同步接口进行删除,参考 缓存 api 概览。 小程序缓存到达10mb后会清除之前的数据再写入还是写入报错当超过 10mb 会无法继续写入,并提示:error 12,数据库存储达到上限时。可以通过删除缓存数据的异步接口 my.removestorage 移除不必要的存储。 getstoragesync可以设置超时时间么my.getstoragesync 缓存数据本地加密存储,该方法为同步方法不能设置超时时间。 支付宝预授权是否支持设置cookie支付宝预授权业务不涉及 cookie 存储问题,预授权数据不建议存储在 cookie 中。 如何更新小程序缓存可以使用 my.setstoragesync/my.setstorage 存入相同的 key 即可覆盖之前的缓存。