小程序(十)小程序缓存
小程序的缓存是个很重要的东西。
小程序的缓存最大上限是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()
以上就是微信小程序缓存的基本操作,有好的建议,请在下方输入你的评论。
欢迎访问我的小程序:
小程序(十)小程序缓存相关推荐
- 微信小程序 本地mysql_微信小程序系列之使用缓存在本地模拟服务器数据库
微信小程序系列之使用缓存在本地模拟服务器数据库 现在将data.js这个文件视作是本地数据库的初始化数据,要做的第一件事就是讲这些初始化数据装进缓存中,以形成数据库的初始化数据 整个应用程序的生命周期 ...
- 小程序怎么清服务器缓存,怎么清理微信小程序缓存 微信小程序缓存删除的方法...
微信小程序上线之后,关注的小程序越多,哪么将占用的手机空间就越大,这些程序会产生一定的缓存,那么怎么清理小程序缓存呢?微信小程序内的缓存到底如何清除?和小编一起来看看删除微信小程序缓存的方法吧. 一些 ...
- 微信小程序开发:小程序的本地数据缓存
小程序的本地数据缓存 本地数据缓存,指的是把数据存储在当前设备硬盘上,妥善使用本地数据缓存,可以带来良好的用户体验. 微信小程序提供了同步和异步两组读写本地数据缓存的接口. 读取本地数据 wx.get ...
- 十年经验-给程序员小弟弟小妹妹们的一些总结性忠告
展望未来,总结过去10年的程序员生涯,给程序员小弟弟小妹妹们的一些总结性忠告 走过的路,回忆起来是那么曲折,把自己的一些心得体会分享给程序员兄弟姐妹们,虽然时代在变化,但是很可能你也会走我已经做过的 ...
- 微信小程序首页图片本地缓存
来源 最近写小程序的时候,因为首页有轮播图.广告图等等,导致我的首屏加载太慢了,想着将一部分图片做下本地缓存. 解决办法 查询api FileSystemManager.saveFile FileSy ...
- 微信小程序开发(十)小程序支付-查询退款
应用场景 提交退款申请后,通过调用该接口查询退款状态.退款有一定延时,用零钱支付的退款20分钟内到账,银行卡支付的退款3个工作日后重新查询退款状态. 接口说明 这里退款还是根据商户订单号-out_tr ...
- 十年经验-给程序员小弟弟小妹妹们的一些总结性忠告(转)
http://www.apkbus.com/android-11837-1-1.html 展望未来,总结过去10年的程序员生涯,给程序员小弟弟小妹妹们的一些总结性忠告 走过的路,回忆起来是那么曲折,把 ...
- python开发微信小程序-微信小程序开发:python+sanic 实现小程序登录注册
开发微信小程序时,接入小程序的授权登录可以快速实现用户注册登录的步骤,是快速建立用户体系的重要一步.这篇文章将介绍 python + sanic + 微信小程序实现用户快速注册登录全栈方案. 微信小程 ...
- 总结过去10年的程序员生涯,给程序员小弟弟小妹妹们的一些总结性忠告
展望未来,总结过去10年的程序员生涯,给程序员小弟弟小妹妹们的一些总结性忠告 走过的路,回忆起来是那么曲折,把自己的一些心得体会分享给程序员兄弟姐妹们,虽然时代在变化,但是很可能你也会走我已经做过的 ...
- 脱离微信,在硬件设备运行小程序?小程序硬件框架大揭秘!
受访者 | 微信小程序硬件框架团队 采访者 | 伍杏玲 出品 | CSDN(ID:CSDNnews) 在 2017 年的微信公开课 PRO 上,张小龙谈到微信小程序的设计初衷:"我认为所有的 ...
最新文章
- Sun 认证考试是否合适于你?
- C++学习笔记之函数指针
- winpython使用教程-Win系统PyQt5安装和使用教程
- 3.ELK 之elasticsearch CRUD
- DBA(五):数据分片、Mycat服务
- 实体类dao接口mysql_利用MyBatis生成器自动生成实体类、DAO接口和Mapping映射文件...
- linux下软件的安装[转]
- [BZOJ1503][NOI2004]郁闷的出纳员 无旋Treap
- python数据导入hive_Python操作HIve,将数据插入到Mysql
- 中国剩余定理求解“六位教授必须首次都停止上课”问题
- Linux系统安全保护措施
- jstack简单使用,定位死循环、线程阻塞、死锁等问题
- 斐波那契堆python实现——Fibonacci Heaps
- 存储珍贵的数据和资源的好选择,铁威马NAS F2-221折腾体验
- cf服务器显示空白,cf空白名(cf显示空白的生僻字)
- 如何购买一台云服务器
- [DNS 设置] 电脑无法访问网页,但可以正常使用QQ和微信。
- SQL面试问题及回答
- Batchnorm 和Layernorm 区别
- 远程桌面管理_IIS7远程桌面连接工具使用方法