我的所有的小程序demo都采用了大量的缓存
优采云 发布时间: 2021-07-03 01:20我的所有的小程序demo都采用了大量的缓存
我所有的小程序demo都使用了很多缓存,尤其是列缓存,因为列本身属于不经常更新的内容,为了减少api请求的次数,列专门存放在缓存中,和phpcms的列缓存调用方法存放在数组:CATEGORYS中,调用方法也是phpcms的调用方法。
虽然存储在CATEGORYS中调用很方便,但是百度小程序、微信小程序和今日头条小程序都没有提供自动缓存更新功能,有时我们的小程序缓存有必要的更新,我该怎么办?
第一个一、允许用户手动更新,比如清除缓存或者重新删除小程序重新打开,但是操作成本太大,估计没人愿意折腾,
二、是添加缓存时间,虽然setStorageSync没有添加时间,但我们可以直接将时间整体存储
代码腾石建站 vartimestamp=Date.parse(newDate());varexpires_time=timestamp+1000*60*60*24*7;//缓存30分钟 swan.setStorageSync("expires_time",expires_time);我们去读取列信息的时候,只需要先判断expires_time和当前时间的关系,判断是否已经过期。如果过期了,我们直接重新读取api。如果没有,我们继续读取缓存。
参考代码:(为了防止六九哥无耻抄袭,抱歉没有提供源代码)
这样写还好,但是看起来有点麻烦,因为调用缓存的地方太多,无法每次都判断,所以直接在get_cat的Promise方法中判断,得到列缓存,我们只要正常就读这个方法
禁止转载,抄袭可耻