小程序开发API之数据缓存

时间:2024-10-03 22:15:09

异步数据存取

(Object object)

将数据存储在本地缓存中指定的 key 中。会覆盖掉原来该 key 对应的内容。
数据存储生命周期跟小程序本身一致,即除用户主动删除或超过一定时间被自动清理,否则数据都一直可用。
单个 key 允许存储的最大数据长度为 1MB,所有数据存储上限为 10MB。

参数
在这里插入图片描述

(Object object)

从本地缓存中异步获取指定 key 的内容
参数在这里插入图片描述

回调函数参数res在这里插入图片描述

示例:

<button bindtap='btnClick1' type="primary">异步存setStorage</button>
<button bindtap='btnClick2' type="primary">异步取getStorage</button>
  • 1
  • 2

button{
  margin: 20rpx
}
  • 1
  • 2
  • 3

Page({
  data: {
    
  },
  btnClick1:function(){
    ('异步存入key1:value1')
    ({
      key: 'key1',
      data: 'value1'
    })
  },
  btnClick2: function () {
    ({
      key: 'key1',
      success(res) {
        ('异步取出key1:',)
      }
    })
  }
})
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20

打印结果

异步存入key1:value1
异步取出key1:value1

##同步数据存取

(string key, any data)

的同步版本

  • string key本地缓存中指定的 key
  • any data 需要存储的内容。只支持原生类型、Date、及能够通过序列化的对象。

(string key)

的同步版本

  • string key 本地缓存中指定的 key
  • any data key对应的内容

示例

<button bindtap='btnClick3' type="primary">同步存setStorageSync</button>
<button bindtap='btnClick4' type="primary">同步存getStorageSync</button>
  • 1
  • 2

button{
  margin: 20rpx
}
  • 1
  • 2
  • 3

Page({
  data: {
    
  },
  btnClick3: function () {
    ('同步存入key2:value2')
    ('key2', 'value2')
    /*或者
    try {
          ('key2', 'value2')
        } catch (e) { } 
    */
  },
  btnClick4: function () {
    const value = ('key2')
    ('同步取出key2:',value)
    /*获取
    try {
          const value = ('key2')
          if (value) {
            ('同步取出key2:',value)
          }
        } catch (e) {
          
        }  
    */
  }
})
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28

打印结果

同步存入key2:value2
同步取出key2: value2

所有缓存数据的

(Object object)

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

参数Object object在这里插入图片描述

回调函数参数在这里插入图片描述

()

的同步版本在这里插入图片描述

示例:

<button bindtap='btnClick5' type="primary">异步获取所有缓存键值对</button>
<button bindtap='btnClick6' type="primary">同步获取所有缓存键值对</button>
  • 1
  • 2

button{
  margin: 20rpx
}
  • 1
  • 2
  • 3

Page({
  data: {
    
  },
  btnClick5: function () {
    ({
      success(res) {
        ()       //当前 storage 中所有的 key
        ()//当前占用的空间大小, 单位 KB
        ()  //限制的空间大小,单位 KB
      }
    })
  },
  btnClick6: function () {
    const res = ()
    ()
    ()
    ()
    /*或者
    try {
          const res = ()
          ()
          ()
          ()
        } catch (e) {
          // Do something when catch error
        }
    */
  }
})
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30

打印结果

异步
[“logs”, “key1”, “key2”]
3
10240
同步
[“logs”, “key1”, “key2”]
3
10240

删除指定Key

(Object object)

从本地缓存中移除指定 key(异步)在这里插入图片描述

(string key)

的同步版本,同步从本地缓存中移除指定 key

  • string key 本地缓存中指定的 key

清理本地数据缓存

(Object object)

清理本地数据缓存(异步)在这里插入图片描述

()

的同步版本,同步清理本地数据缓存

示例:

<button bindtap='btnClick7' type="primary">从本地缓存中移除指定 key</button>
<button bindtap='btnClick8' type="primary">清理本地数据缓存</button>
  • 1
  • 2

button{
  margin: 20rpx
}
  • 1
  • 2
  • 3

Page({
  data: {
    
  },
  btnClick7: function () {
    //异步
    ({
      key: 'key1',
      success(res) {
        ()
      }
    })
    /*同步
    try {
      ('key')
    } catch (e) {
      // Do something when catch error
    }*/
  },
  btnClick8: function () {
    //异步
    ()
    /*同步
    try {
          ()
        } catch (e) {
          // Do something when catch error
        }
    */
  }
})
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31

综上:


在这里插入图片描述

示例代码

<button bindtap='btnClick1' type="primary">异步存setStorage</button>
<button bindtap='btnClick2' type="primary">异步取getStorage</button>

<button bindtap='btnClick3' type="primary">同步存setStorageSync</button>
<button bindtap='btnClick4' type="primary">同步存getStorageSync</button>

<button bindtap='btnClick5' type="primary">异步获取所有缓存键值对</button>
<button bindtap='btnClick6' type="primary">同步获取所有缓存键值对</button>

<button bindtap='btnClick7' type="primary">从本地缓存中移除指定 key</button>
<button bindtap='btnClick8' type="primary">清理本地数据缓存</button>
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11

button{
  margin: 20rpx
}
  • 1
  • 2
  • 3

Page({
  data: {
    
  },
  btnClick1:function(){
    ('异步存入key1:value1')
    ({
      key: 'key1',
      data: 'value1'
    })
  },
  btnClick2: function () {
    ({
      key: 'key1',
      success(res) {
        ('异步取出key1',)
      }
    })
  },
  btnClick3: function () {
    ('同步存入key2:value2')
    ('key2', 'value2')
    /*或者
    try {
          ('key2', 'value2')
        } catch (e) { } 
    */
  },
  btnClick4: function () {
    const value = ('key2')
    ('同步取出key2:',value)
    /*获取
    try {
          const value = ('key2')
          if (value) {
            ('同步取出key2:',value)
          }
        } catch (e) {

        }  
    */
  },
  btnClick5: function () {
    ({
      success(res) {
        ()       //当前 storage 中所有的 key
        ()//当前占用的空间大小, 单位 KB
        ()  //限制的空间大小,单位 KB
      }
    })
  },
  btnClick6: function () {
    const res = ()
    ()
    ()
    ()
    /*或者
    try {
          const res = ()
          ()
          ()
          ()
        } catch (e) {
          // Do something when catch error
        }
    */
  },
  btnClick7: function () {
    //异步
    ({
      key: 'key1',
      success(res) {
        ()
      }
    })
    /*同步
    try {
      ('key')
    } catch (e) {
      // Do something when catch error
    }*/
  },
  btnClick8: function () {
    //异步
    ()
    /*同步
    try {
          ()
        } catch (e) {
          // Do something when catch error
        }
    */
  }
})
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31
  • 32
  • 33
  • 34
  • 35
  • 36
  • 37
  • 38
  • 39
  • 40
  • 41
  • 42
  • 43
  • 44
  • 45
  • 46
  • 47
  • 48
  • 49
  • 50
  • 51
  • 52
  • 53
  • 54
  • 55
  • 56
  • 57
  • 58
  • 59
  • 60
  • 61
  • 62
  • 63
  • 64
  • 65
  • 66
  • 67
  • 68
  • 69
  • 70
  • 71
  • 72
  • 73
  • 74
  • 75
  • 76
  • 77
  • 78
  • 79
  • 80
  • 81
  • 82
  • 83
  • 84
  • 85
  • 86
  • 87
  • 88
  • 89
  • 90
  • 91
  • 92
  • 93
  • 94