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

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

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

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

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

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

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

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

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

接口调用结束的回调函数(调用成功、失败都会执行)

示例代码:

wx.setStorage({key:"key",data:"value"
})
try {wx.setStorageSync('key', 'value')
} catch (e) { }

同步版本:wx.setStorageSync(string key, any data)

2:wx.getStorage(Object object)从本地缓存中异步获取指定 key 的内容

Object object

接口调用结束的回调函数(调用成功、失败都会执行)

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

(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

接口调用结束的回调函数(调用成功、失败都会执行)

示例代码:

wx.removeStorage({key: 'key',success (res) {console.log(res)}
})
try {wx.removeStorageSync('key')
} catch (e) {// Do something when catch error
}

同步方法:wx.removeStorageSync(string key)

4:wx.getStorageInfo(Object object) 异步获取当前storage的相关信息

Object object

示例代码:

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

接口调用结束的回调函数(调用成功、失败都会执行)

示例代码:

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

同步方法:wx.clearStorageSync()

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

小程序(十)小程序缓存相关推荐

  1. 微信小程序 本地mysql_微信小程序系列之使用缓存在本地模拟服务器数据库

    微信小程序系列之使用缓存在本地模拟服务器数据库 现在将data.js这个文件视作是本地数据库的初始化数据,要做的第一件事就是讲这些初始化数据装进缓存中,以形成数据库的初始化数据 整个应用程序的生命周期 ...

  2. 小程序怎么清服务器缓存,怎么清理微信小程序缓存 微信小程序缓存删除的方法...

    微信小程序上线之后,关注的小程序越多,哪么将占用的手机空间就越大,这些程序会产生一定的缓存,那么怎么清理小程序缓存呢?微信小程序内的缓存到底如何清除?和小编一起来看看删除微信小程序缓存的方法吧. 一些 ...

  3. 微信小程序开发:小程序的本地数据缓存

    小程序的本地数据缓存 本地数据缓存,指的是把数据存储在当前设备硬盘上,妥善使用本地数据缓存,可以带来良好的用户体验. 微信小程序提供了同步和异步两组读写本地数据缓存的接口. 读取本地数据 wx.get ...

  4. 十年经验-给程序员小弟弟小妹妹们的一些总结性忠告

    展望未来,总结过去10年的程序员生涯,给程序员小弟弟小妹妹们的一些总结性忠告  走过的路,回忆起来是那么曲折,把自己的一些心得体会分享给程序员兄弟姐妹们,虽然时代在变化,但是很可能你也会走我已经做过的 ...

  5. 微信小程序首页图片本地缓存

    来源 最近写小程序的时候,因为首页有轮播图.广告图等等,导致我的首屏加载太慢了,想着将一部分图片做下本地缓存. 解决办法 查询api FileSystemManager.saveFile FileSy ...

  6. 微信小程序开发(十)小程序支付-查询退款

    应用场景 提交退款申请后,通过调用该接口查询退款状态.退款有一定延时,用零钱支付的退款20分钟内到账,银行卡支付的退款3个工作日后重新查询退款状态. 接口说明 这里退款还是根据商户订单号-out_tr ...

  7. 十年经验-给程序员小弟弟小妹妹们的一些总结性忠告(转)

    http://www.apkbus.com/android-11837-1-1.html 展望未来,总结过去10年的程序员生涯,给程序员小弟弟小妹妹们的一些总结性忠告 走过的路,回忆起来是那么曲折,把 ...

  8. python开发微信小程序-微信小程序开发:python+sanic 实现小程序登录注册

    开发微信小程序时,接入小程序的授权登录可以快速实现用户注册登录的步骤,是快速建立用户体系的重要一步.这篇文章将介绍 python + sanic + 微信小程序实现用户快速注册登录全栈方案. 微信小程 ...

  9. 总结过去10年的程序员生涯,给程序员小弟弟小妹妹们的一些总结性忠告

    展望未来,总结过去10年的程序员生涯,给程序员小弟弟小妹妹们的一些总结性忠告  走过的路,回忆起来是那么曲折,把自己的一些心得体会分享给程序员兄弟姐妹们,虽然时代在变化,但是很可能你也会走我已经做过的 ...

  10. 脱离微信,在硬件设备运行小程序?小程序硬件框架大揭秘!

    受访者 | 微信小程序硬件框架团队 采访者 | 伍杏玲 出品 | CSDN(ID:CSDNnews) 在 2017 年的微信公开课 PRO 上,张小龙谈到微信小程序的设计初衷:"我认为所有的 ...

最新文章

  1. Sun 认证考试是否合适于你?
  2. C++学习笔记之函数指针
  3. winpython使用教程-Win系统PyQt5安装和使用教程
  4. 3.ELK 之elasticsearch CRUD
  5. DBA(五):数据分片、Mycat服务
  6. 实体类dao接口mysql_利用MyBatis生成器自动生成实体类、DAO接口和Mapping映射文件...
  7. linux下软件的安装[转]
  8. [BZOJ1503][NOI2004]郁闷的出纳员 无旋Treap
  9. python数据导入hive_Python操作HIve,将数据插入到Mysql
  10. 中国剩余定理求解“六位教授必须首次都停止上课”问题
  11. Linux系统安全保护措施
  12. jstack简单使用,定位死循环、线程阻塞、死锁等问题
  13. 斐波那契堆python实现——Fibonacci Heaps
  14. 存储珍贵的数据和资源的好选择,铁威马NAS F2-221折腾体验
  15. cf服务器显示空白,cf空白名(cf显示空白的生僻字)
  16. 如何购买一台云服务器
  17. [DNS 设置] 电脑无法访问网页,但可以正常使用QQ和微信。
  18. SQL面试问题及回答
  19. Batchnorm 和Layernorm 区别
  20. 远程桌面管理_IIS7远程桌面连接工具使用方法

热门文章

  1. 近似平面点云一般特征——粗糙度
  2. Cadence-原理图-器件调换-镜像方法
  3. Eureka与ZooKeeper对比,Eureka的优势
  4. 一个小老板的日常管理,希望能让创业朋友学到东西
  5. java程序画龙猫_几步教你画出萌萌的龙猫
  6. centos7.6安装moxa串口卡驱动
  7. 洛谷:数字反转(P5705)C语言
  8. 香蕉派安装64位linux,快速上手 香蕉派镜像烧录与系统启动
  9. python写word下标_Python用python-docx读写word文档
  10. Odoo14免费开源ERP实施指南:CRM功能应用篇(1)