唯品秀前端博客

大家做小程序开发时间是不是遇到很蛋疼一个问题就是没有cookie可用,只能用getStorageSync那套东西,这就意味着你不好处理缓存的有效时间问题,最近我困扰了许久,最后整理出个思路,一起来看看吧。

思路说明

通过利用时间戳方式,在设置缓存key的时候,值直接给到它有效时间对应的时间戳,比如今天是2018/7/13/9:48,那么设置有效时间三天,那就是2018/7/16/9:48,如下代码

1
2
3
4
5
6
7
module.exports = {
  set: function(k, v, time) {
    var effTime = parseInt(Date.parse(new Date())) + 86400000 * time; //有效时期时间戳
    wx.setStorageSync(k, v ? v : effTime);
  }
};
//86400000 就是一天等于多少毫秒

然后在使用时候判断当前时间戳是不是小于缓存的时间戳,这样就知道当前key这个变量是不是有效的,当然,更多功能想法你还可以自己扩展,思路就是这样,没毛病

1
2
3
4
 // 点击推送通知按钮设置7天有效时间缓存
  openNotice: function() {
    Storage.set('oldStorTime', '', 7);
  }
1
2
3
4
5
6
7
8
onLoad:function(){
     var currentTime = Date.parse(new Date()); //当前时间戳
     if (currentTime < wx.getStorageSync('oldStorTime')) {
       //console.log("缓存时间有效")
     } else {
      //console.log("缓存时间已过期")
     }
}

提示:这个时间获取的当然就是你手机的本地时间。很显然,你不应该仅仅依靠前端的缓存时间做活动倒计时,又或者签到打卡等等功能,尤其涉及金钱类(在此不得不吐槽我们公司后端人员,把前端本地存储功能当半个数据库,很多变量依靠前端直接存储在用户客户端,他们就不进行校验)。所以你在开发调试时候只需要改变你手机的本地时间即可进行真机测试。

本站所有文章、图片、资源等如无特殊说明或标注,均为来自互联网或者站长原创,版权归原作者所有;仅作为个人学习、研究以及欣赏!如若本站内容侵犯了原著者的合法权益,可联系我们进行处理,邮箱:343049466@qq.com
赞(13) 打赏
谢谢你请我吃鸡腿*^_^*

支付宝扫一扫打赏

微信扫一扫打赏

上一篇:

下一篇:

相关推荐

0 条评论关于"【已解决】微信小程序缓存时间有效期设置"

表情

最新评论

    暂无留言哦~~