微信小程序> 小程序内存缓存

小程序内存缓存

浏览量:695 时间: 来源:雨声不在

项目背景和上一篇博客一样。

是一个和业务逻辑相关的问题了,就是我做页面路由(确定跳转到哪个page)要从后台拉数据,但是同样的接口在页面里面也会用到,为了更好的利用这一些数据,我在HTTP请求那里做了一点缓存。

js代码是这样写的

var data ={};var memory=function() {  function push(key, value) {    data[key] = {      time: utils.now(),      data: value    }  }  function pop(key) {    var obj = data[key];    if (obj){      delete cache[key];      if (utils.now() - obj.time  3)return obj.data;    }    return null;  }  function invalid(){    data = {};  }  return {    push: push,    pop: pop,    invalid: invalid,    all: function () {      return data;    }  }}module.exports = memory

只拦截GET网络请求,所以网络部分是这样封装的:

function GET(options) {  //TODO 缓存键值需要优化  var memory = cache.memory();  if (options && options.url) {    if (options.cache) {      //拦截成功回调      var originSuccess = options.success;      if (originSuccess) {        options.success = (resp) = {          memory.push(options.url, resp);          originSuccess(resp);        }      }    } else {      //命中缓存      var target = memory.pop(options.url);      if (target && options.success) options.success(target);      if (target) return;    }  }  net(options, 'GET')}

ps:net 里面会处理很多我们这边的错误码,代码细节就不放上来了。

定义了缓存的有效时间,简单有效的满足了背景需求。用的时候,就是 options.cache=true

版权声明

即速应用倡导尊重与保护知识产权。如发现本站文章存在版权问题,烦请提供版权疑问、身份证明、版权证明、联系方式等发邮件至197452366@qq.com ,我们将及时处理。本站文章仅作分享交流用途,作者观点不等同于即速应用观点。用户与作者的任何交易与本站无关,请知悉。

产品经理

手机 : 13312967497

擅长 : 小程序流量变现

扫码领取礼包

热门模板

  • 头条
  • 搜狐
  • 微博
  • 百家
  • 一点资讯
  • 知乎