【声明】关于六久阁私自出售我公司dedecms小程序插件声明
发布时间:2020-03-15 09:06:13查看:0已经上线的小程序如何自动更新缓存? 
我的所有的小程序demo都采用了大量的缓存,特别是栏目缓存,因为栏目本身属于不经常更新的内容,为了减轻api的请求次数,专门把栏目存入缓存,并且采用phpcms的栏目缓存调用方式存入数组:CATEGORYS,并且调用方式也是完全采用phpcms的调用方式。

虽然存入CATEGORYS调用方便了,但是百度小程序、微信小程序和头条小程序都没有提供缓存自动更新的功能,有时候我们的小程序缓存有必须的更新,怎么办?

第一、让用户手动更新,比如清楚缓存或者重新删掉小程序重新打开,但是操作成本太大,估计没人愿意折腾,
第二、就是加入缓存时间,虽然setStorageSync没有加入时间的地方,我们就可以直接吧时间作为整体存储起来
  1. var timestamp = Date.parse(new Date()); 
  2. var expires_time = timestamp + 1000*60*60*24*7; //缓存30分钟 
  3. swan.setStorageSync("expires_time",expires_time); 
然后当我们去读取栏目信息的时候,只需要先判断expires_time和当前时间的关系,判断是不是过期了,如果过期了,我们直接重新读取api,如果没有,则继续读取缓存,
参考代码:(为防止六久阁无耻抄袭,抱歉不提供源码)


这么写没问题,但是看上去有点麻烦了,因为调用缓存的地方太多了,不能每次都这么判断,所以我们直接在get_cat获取栏目缓存的Promise方法里边去判断,我们只需要正常读取这个方法就行



禁止转载,抄袭可耻



版权声明:本文为原创文章,未经允许不得转载。https://doc.tengcee.com/phpcms/phpcmsquestion/139.html

服务热线

15137100750

我知道你不会打


但是我还是要写


你懂得!

微信二维码

QQ群二维码