欢迎光临!欢迎来到小司的个人网站

关键词搜索:

当前位置: 首页>前端开发>小程序>

小程序设置一段时间后清除缓存 查看代码演示

日期:2018-09-14 编辑:司伟 阅读次数:

微信开发文档中给我们提供了一系列关于设置缓存、获取缓存、清除缓存的方法,但是并没有提供设置过期时间的方法。

这里,我们就可以考虑用缓存存储一个过期时间,再与当前时间进行比较的方式进行实现。


第一步:在app.js中,我们先设定过期时间,以onLaunch为例,启动小程序时,设定当前时间,再设定一个过期时间,存储在缓存中,命名index_data_expiration;


onLaunch : function(){

    //存一个过期时间

    var timestamp = Date.parse(new Date());

   timestamp = timestamp / 1000;

    var expiration = timestamp + 5;//5秒

    wx.setStorageSync("index_data_expiration", expiration);

}


第二步:在index.js或其他js中,请求接口,在获取接口数据success时,将获取到的token值(或者你想要储存在缓存中的值)设置成缓存,存入缓存token;


onLoad: function (options) {

    var that = this;

    // 请求接口

    wx.request({

        url: url,

        method: 'GET',

        data: {},

        header: {

            'content-type': 'application/json'

        },

        success: function (res) {

            //将获取到的token值(或者你想要储存在缓存中的值)设置成缓存,存入缓存token;

            var token = res.data.token;

            wx.setStorageSync("token", token);

        },

    })

},


第三步:在onShow时,将过期时间与现在时间进行比较,若过期时间小于现在时间,则清空全部缓存;


onShow: function () {

    var expiration = wx.getStorageSync("index_data_expiration");//拿到过期时间

    var timestamp = Date.parse(new Date());//拿到现在时间

    console.log(expiration)

    console.log(timestamp)

    //进行时间比较

    if (expiration < timestamp) {//过期了,清空缓存,跳转到登录

      console.log("缓存已过期");

      wx.clearStorageSync();//清空缓存      

      return;

    }

}


可在微信开发者工具中查看缓存是否有被清除掉。

QQ图片20180913215522.png


PS:有兴趣的小伙伴可在深入研究,在请求接口(登录等接口)时即创建一个时间以及过期时间,以此来清除缓存。

  • 上一篇: 没有了
  • 下一篇: 没有了
返回列表

相关文章

×