您当前的位置:首页 > 微信小程序开发笔记 >

数据缓存API

0

在微信小程序中,有时需要保存一些临时数据,例如,将用户登录后获取到的 token 保存下来,从而在用户下次打开微信小程序时维持登录状态,或者将一些经常需要从服务器中下载的数据在微信客户端中缓存起来,以提高微信小程序下次打开时的加载速度。在微信小程序中,利用数据缓存API可以实现数据的缓存,从而加快读取数据的速度。数据缓存API有很多方法,常见的数据缓存方法如下表所示。

方式方法说明
异步wx.setStorage()将数据存储在本地缓存中指定的key中。会覆盖掉原来该key对应的内容。除非用户主动删除或因存储空间原因被系统清理,否则数据都一直可用。单个key允许存储的最大数据长度为1MB,所有数据存储上限为10MB。
wx.getStorage()从本地缓存中异步获取指定key的内容
wx.getStorageInfo()异步获取当前storage的相关信息
wx.removeStorage()从本地缓存中移除指定key
同步wx.setStorageSync()wx.setStorage()方法的同步版本
wx.getStorageSync()wx.getStorage()方法的同步版本
wx.getStorageInfoSync()wx.getStorageInfo()方法的同步版本
wx.removeStorageSync()wx.removeStorage()方法的同步版本

wx.setStorage()方法和wx.setStorageSync()方法均可以实现缓存数据,区别就在于同步和异步。方法名以Sync结尾的都是同步方法,同步方法和异步方法的区别是,异步方法不会阻塞当前任务,而同步方法直到处理完之后才能继续向下执行。异步方法需要通过传入回调函数获取结果,而同步方法是通过返回值获取结果。如果发生错误,异步方法会执行 fail() 回调函数返回错误,而同步方法则通过 try...catch 捕获异常来获取错误信息。

var dataObj=require("data/data.js");
App({
  //监听小程序初始化,当小程序初始化完成时,会触发 onLaunch(全局只触发一次)
  onLaunch:function(){
    wx.setStorage({
      key:"postList",
      data:dataObj.postList,
      success:function(res){},
      fail:function(){},
      complete:function(){}
    })
  }
})

缓存让小程序具备了本地存储数据的能力,它具有以下几个特点:

  • 只要用户不主动清除缓存,则缓存一直存在。
  • 缓存以key:value键值对的形式存在,很类似于服务器流行的memcache或者redis缓存型数据库。
  • 小程序提供了一系列API用来操作缓存,包括:存储、读取、移除、清除全部和获取缓存信息。每种操作同时都具有同步和异步两个方法。
  • 请注意移除和清除的区别。删除某一个key的缓存,请使用wx.removeStorage方法;而如果想清除所有的缓存请使用wx.clearStorage方法。
  • 要注意,小程序的缓存永久存在,不存在过期时间这个概念。如果想清除缓存,则需要主动调用清除缓存的API。
  • 小程序的本地缓存有容量上限,单个key允许存储的最大数据长度为1MB,所有数据存储上限为10MB。

建站咨询

在线咨询真诚为您提供专业解答服务

咨询热线

137 1731 25507×24小时服务热线

微信交流

二维码终于等到你,还好我没放弃
返回顶部