美文网首页
小程序(十)小程序缓存

小程序(十)小程序缓存

作者: camellias__ | 来源:发表于2020-08-20 16:34 被阅读0次

小程序的缓存是个很重要的东西。

小程序的缓存最大上限是10MB左右。10MB,好大的空间……

这么大的空间,利用的时候,你就需要考虑一下了,不能啥都往里存,因为一不小心,就满了……但是吧,合理的利用这个玩意,这个玩意是真好用。

我后期是打算在小程序中加上即时聊天这个功能。目前现阶段,只是接入了腾讯AI智能闲聊的接口。

关于聊天的部分,后期的教程中会写到。先说缓存:

用户每次和机器人的聊天记录,我把它们存储到缓存中然后再回显。我的本意是仿照微信那样,保存聊天记录。就是当你下次再进入的时候,你上次的聊天记录依然可见。但是由于微信的缓存空间太大,我怕一直不清楚聊天记录,缓存满了,数据存不进去了,可能就会出问题了。

所以,这里做了一下处理,每次进入之前先清缓存。

下面,我们看一下缓存的一些方法:

1:wx.setStorage(Object object)存储缓存

微信截图_20200820163054.png

这个是异步的方法,不会阻塞程序运行。但是吧,在实际开发中可能会遇到这样的问题,首先,我需要去缓存中获取用户信息,然后再根据是否有用户信息,再做其他的操作,但是,异步读取缓存的话,就会造成,还没有获取到用户信息,就已经执行下一步操作了,这个时候,两个解决方法:

(1):使用wx.setStorage(Object object)的同步版本wx.setStorageSync(string key, any data),但是吧,这个同步版本放在生命周期函数中调用的时候 不执行。这个好像是微信机制的问题,但是这个还是可以用的。

(2):使用wx.setStorage(Object object)的回调函数,将下一步执行的操作,放到获取成功的回调函数中执行。

我用的是第二种方法,还是挺好用的。

示例代码:

wx.getStorage({
  key: 'key',
  success (res) {
    console.log(res.data)
  }
})
try {
  var value = wx.getStorageSync('key')
  if (value) {
    // Do something with return value
  }
} catch (e) {
  // Do something when catch error
}

同步方法:wx.setStorageSync(string key, any data)

3:wx.removeStorage(Object object) 从本地缓存中移除指定 key

Object object

微信截图_20200820163054.png

示例代码:

wx.getStorageInfo({
  success (res) {
    console.log(res.keys)
    console.log(res.currentSize)
    console.log(res.limitSize)
  }
})
try {
  const res = wx.getStorageInfoSync()
  console.log(res.keys)
  console.log(res.currentSize)
  console.log(res.limitSize)
} catch (e) {
  // Do something when catch error
}

同步方法:Object wx.getStorageInfoSync()

5:wx.clearStorage(Object object)清理本地数据缓存

Object object


微信截图_20200820163054.png

示例代码:

wx.clearStorage()
try {
  wx.clearStorageSync()
} catch(e) {
  // Do something when catch error
}

同步方法:wx.clearStorageSync()

以上就是微信小程序缓存的基本操作,有好的建议,请在下方输入你的评论。

原文链接:https://guanchao.site/index/article/articledetail.html?artid=GoZHobPFd

相关文章

  • 小程序(十)小程序缓存

    小程序的缓存是个很重要的东西。 小程序的缓存最大上限是10MB左右。10MB,好大的空间…… 这么大的空间,利用的...

  • 小程序-应用缓存隔离度

    开发小程序不可避免的会使用到数据缓存,可能是缓存用户信息,也可能是缓存小程序产生的应用数据,那么关于小程序中缓存获...

  • 小程序缓存

    每个微信小程序都可以有自己的本地缓存,可以通过 wx.setStorage(wx.setStorageSync)、...

  • 支付宝小程序爬坑

    知识点一 支付宝小程序的缓存是存贮在支付宝app的,因此删除支付宝小程序不会删除缓存。 2.小程序的授权是存贮在支...

  • 微信小程序(一)断点调试,页面骨架

    需要关注小程序的几个值,APPdata,storage小程序的缓存,Wxml类似于HTML的页面资源。 应用程序的...

  • 微信小程序学习笔记

    从点开到显示的过程 点开微信小程序; 初始化宿主环境,加载小程序代码包,如果本地有缓存就用缓存,如果没有缓存就执行...

  • 【uniapp】微信小程序发布后提醒用户更新版本

    业务场景: 当我们把微信小程序提交审核,通过后进行发布,如果用户本地使用小程序有时就会出现缓存,打开的小程序还是旧...

  • 小程序图片缓存

    解决方案: '/3.png?' + Math.random() / 9999 在图片的地址后面增加一个随机的参数

  • 小程序本地缓存

    本地缓存 同步(Sync)wx.setStorageSync(key,值) 获取本地缓存 (值可以是对象)wx.g...

  • 小程序之缓存

    每个微信小程序都可以有自己的本地缓存,可以通过 wx.setStorage(wx.setStorageSync)、...

网友评论

      本文标题:小程序(十)小程序缓存

      本文链接:https://www.haomeiwen.com/subject/cvqejktx.html