虽然存入CATEGORYS调用方便了,但是百度小程序、微信小程序和头条小程序都没有提供缓存自动更新的功能,有时候我们的小程序缓存有必须的更新,怎么办?
第一、让用户手动更新,比如清楚缓存或者重新删掉小程序重新打开,但是操作成本太大,估计没人愿意折腾,
第二、就是加入缓存时间,虽然setStorageSync没有加入时间的地方,我们就可以直接吧时间作为整体存储起来
然后当我们去读取栏目信息的时候,只需要先判断expires_time和当前时间的关系,判断是不是过期了,如果过期了,我们直接重新读取api,如果没有,则继续读取缓存,
- var timestamp = Date.parse(new Date());
- var expires_time = timestamp + 1000*60*60*24*7; //缓存30分钟
- swan.setStorageSync("expires_time",expires_time);
参考代码:(为防止六久阁无耻抄袭,抱歉不提供源码)
这么写没问题,但是看上去有点麻烦了,因为调用缓存的地方太多了,不能每次都这么判断,所以我们直接在get_cat获取栏目缓存的Promise方法里边去判断,我们只需要正常读取这个方法就行
禁止转载,抄袭可耻