对于接口数据过多的接口可以使用缓存提升用户体验和性能,同时也可以防止用户重复请求过多次数
data: {leftMenuList:[],//左侧菜单数据rightContent:[],//右侧的商品数据},onLoad: function (options) {//利用缓存技术来提高性能,先判断本地存储有没有旧数据,有就使用本地的没有就发送新请求const Cates = wx.getStorageSync("cates")if(!Cates){//不存在就发送请求this.getCates()}else{if(Date.now() - Cates.time > 1000*10){//如果存在数据且过期了的话也要发送请求this.getCates()}else{//如果存在且没有过期,那么就可以使用缓存中的数据,不用发送请求let leftMenuList = Cates.data.map((item,index)=>item.cat_name);let rightContent = Cates.data[0].children;this.setData({leftMenuList,rightContent,})}}async getCates(i){let index = i || 0;const res = await request('/categories');if(res.meta.status == 200){wx.setStorageSync('cates', {time:Date.now(),data:res.message})//关键代码请求成功就存入缓存let leftMenuList = res.message.map((item,index)=>item.cat_name);let rightContent = res.message[index].children;this.setData({leftMenuList,rightContent,scrollTop:0})}else{wx.showToast({title: res.message.meta.msg,icon: 'none'})}