缓存

扫码体验:

img.jpg

my.setStorage

将数据存储在本地缓存中指定的 key 中,会覆盖掉原来该 key 对应的数据。

这是异步接口。支持内嵌webview的存储与小程序存储隔离,内嵌webview中指定key存储数据不会覆盖小程序自身相同key对应的数据

入参

名称类型必填描述
keyString缓存数据的key
dataObject/String要缓存的数据
successFunction调用成功的回调函数
failFunction调用失败的回调函数
completeFunction调用结束的回调函数(调用成功、失败都会执行)

代码示例

  1. my.setStorage({
  2. key: 'currentCity',
  3. data: {
  4. cityName: '杭州',
  5. adCode: '330100',
  6. spell: ' hangzhou',
  7. },
  8. success: function() {
  9. my.alert({content: '写入成功'});
  10. }
  11. });
注意:单条数据转换成字符串后,字符串长度最大200*1024。同一个支付宝用户,同一个小程序缓存总上限为10MB

my.setStorageSync

同步将数据存储在本地缓存中指定的 key 中。

这是同步接口。

入参

名称类型必填描述
keyString缓存数据的key
dataObject/String要缓存的数据
  1. my.setStorageSync({
  2. key: 'currentCity',
  3. data: {
  4. cityName: '杭州',
  5. adCode: '330100',
  6. spell: ' hangzhou',
  7. }
  8. });

my.getStorage

获取缓存数据。

这是异步接口。支持内嵌webview内缓与小程序缓存隔离,获取内嵌webview指定key的缓存不会同时返回小程序相同key下的缓存数据

入参

名称类型必填描述
keyString缓存数据的key
successFunction调用成功的回调函数
failFunction调用失败的回调函数
completeFunction调用结束的回调函数(调用成功、失败都会执行)

success返回值

名称类型说明
dataObject/Stringkey对应的内容

代码示例

  1. my.getStorage({
  2. key: 'currentCity',
  3. success: function(res) {
  4. my.alert({content: '获取成功:' + res.data.cityName});
  5. },
  6. fail: function(res){
  7. my.alert({content: res.errorMessage});
  8. }
  9. });

my.getStorageSync

同步获取缓存数据。

这是同步接口

入参

名称类型必填描述
keyString缓存数据的key

返回值

名称类型说明
dataObject/Stringkey对应的内容

代码示例

  1. let res = my.getStorageSync({ key: 'currentCity' });
  2. my.alert({
  3. content: JSON.stringify(res.data),
  4. });

my.removeStorage

删除缓存数据。

这是异步接口。移除内嵌webview的存储数据时不会移除当前小程序的存储数据

入参

名称类型必填描述
keyString缓存数据的key
successFunction调用成功的回调函数
failFunction调用失败的回调函数
completeFunction调用结束的回调函数(调用成功、失败都会执行)

代码示例

  1. my.removeStorage({
  2. key: 'currentCity',
  3. success: function(){
  4. my.alert({content: '删除成功'});
  5. }
  6. });

my.removeStorageSync

同步删除缓存数据。

这是同步接口。

入参

名称类型必填描述
keyString缓存数据的key
  1. my.removeStorageSync({
  2. key: 'currentCity',
  3. });

my.clearStorage

清除本地数据缓存。

这是异步接口。清空内嵌内嵌webview的存储时不会同时清空当前小程序本身的存储数据

代码示例

  1. my.clearStorage()

my.clearStorageSync

同步清除本地数据缓存。

这是同步接口。

代码示例

  1. my.clearStorageSync()

my.getStorageInfo

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

这是异步接口。在内嵌webview内获取当前storage的相关信息不会获取到当前小程序storage的相关信息

入参

名称类型必填描述
successFunction调用成功的回调函数
failFunction调用失败的回调函数
completeFunction调用结束的回调函数(调用成功、失败都会执行)

success返回值

名称类型说明
keysString Array当前storage中所有的key
currentSizeNumber当前占用的空间大小, 单位KB
limitSizeNumber限制的空间大小,单位KB

代码示例

  1. my.getStorageInfo({
  2. success: function(res) {
  3. console.log(res.keys)
  4. console.log(res.currentSize)
  5. console.log(res.limitSize)
  6. }
  7. })

my.getStorageInfoSync

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

这是同步接口。

返回值

名称类型说明
keysString Array当前storage中所有的key
currentSizeNumber当前占用的空间大小, 单位KB
limitSizeNumber限制的空间大小,单位KB

代码示例

  1. var res = my.getStorageInfoSync()
  2. console.log(res.keys)
  3. console.log(res.currentSize)
  4. console.log(res.limitSize)

Tips:

  • 缓存数据本地加密存储,通过API读取时会自动解密返回。
  • 覆盖安装支付宝(不是先删除再安装),不会导致小程序缓存失效;
  • 支付宝设置中心清除缓存不会导致小程序缓存失效;
  • 小程序缓存默认具有支付宝账号和小程序id两级隔离;
  • iOS支持iTunes备份;

原文: https://docs.alipay.com/mini/api/storage