为什么要要把数据存在本地呢?

因为缓存数据 减少前后端交互所浪费的事件

 1. 每次请求数据 由于数据量非常大 导致接口请求时间超过1s2. 缓存数据 可以不用频繁的去请求数据(常规操作中,一般是由后台设置在响应头中的接口数据是否缓存的)

前端存储 或者缓存

1.存储的位置(本地存储)浏览器和微信小程序的本地存储浏览器 1. window.localStorage.setIte("key","value");微信小程序2. wx.setStorageSync("key","value")在浏览器中 存储的数据必须要转换成字符串在小程序的本地存储中,不需要进行任何的转换 存的数据类型是什么 取出来的就是什么

思路分析:

1.页面刚开始加载的时候判断一下本地存储中是否存在数据
2.如果没有数据, 发送请求
3.如果存在数据 判断一下旧数据有没有过期 如果没有过期则直接使用 已经过期 重新请求新的数据

下面是全部的操作:

Page({/*** 页面的初始数据*/data: {leftDatelist: [],rightDatelist: [],//当前选中的itemcurrentIndex: 0,//滚动位置初始化scrollTop: 0},//定义个当前页面的全局变量dataList: [],//获取全部的数据/*** 生命周期函数--监听页面加载*/onLoad: function (options) {let dataList = wx.getStorageSync('dataList');console.log(dataList);if (!dataList) {//当本地没有任何数据存储的时候 进行获取数据this.getLeftDatelist()} else {//本地存在缓存数据//判断数据是否过期if ((+new Date() - dataList.time) > 10000) {//设置10s过期时间并且进行判断//当超时之后 重新获取数据this.getLeftDatelist()} else {this.dataList = dataList.data;//获取左侧按钮内容let leftDatelist = this.dataList.map(item => item.cat_name);//获取右侧商品分类列表let rightDatelist = this.dataList[0].children;this.setData({leftDatelist,rightDatelist})}}},//点击左侧的分类getLeftDatelist() {wx.$http({url: "categories"}).then(res => {this.dataList = res.data.messagewx.setStorageSync("dataList", {time: +new Date(),data: this.dataList})let leftDatelist = this.dataList.map(item => item.cat_name);let rightDatelist = this.dataList[0].children;this.setData({leftDatelist,rightDatelist})})}
})

微信小程序的本地存储相关推荐

  1. 微信小程序使用本地存储

    在使用微信小程序的时候当获取接口的数据的时候,接口传输过来的数据很大,而每一次回到这个页面又再一次的查询获取数据,这难免会拖垮小程序的速度.这个时候就需要使用本地存储. 变量的含义 Cates :接口 ...

  2. 微信小程序---全局/本地存储

    1. 在app.js 中存储 1.1 接口 // 往本地存储,防止小程序关闭,重写登录 wx.setStorageSync('userinfo', info); // 从本地获取值 wx.getSto ...

  3. 微信小程序实现本地存储

    效果如下 用到小程序的wx.getStorageSync()方法 本地存储格式 思路 1.第一次进入页面时候判断是否存在本地存储以及是否收藏 2.如存在,则说明以前进行过收藏或者取消收藏 3.如果第一 ...

  4. 微信小程序的本地存储、页面跳转、以及请求封装

    一.常见的交互反馈设计 1.使用button组件的loading属性,在按钮的文字前边出现一个Loading 2.wx.showToast显示提示(一般搭配wx.hideToast使用) wx.sho ...

  5. 微信小程序:本地存储数据

    1.本地存储多个数据(嵌套数组),封装数组对象 js书写:addr本身也是数组 var newNa = {"tel": 122222,"addr":that.d ...

  6. 怎么搭建微信小程序的本地测试服务器

    Windows环境下 手把手教你搭建Windows环境微信小程序的本地测试服务器 问题的提出 Mac环境 方便快捷地搭建小程序的测试服务器 小程序对于网络请求的URL的特殊要求 不能出现端口号 不能用 ...

  7. Uni-app开发微信小程序使用本地图片做背景图

    Uni-app开发微信小程序使用本地图片做背景图 <view class="content" :style="{backgroundImage:'url(' + i ...

  8. 微信小程序与本地数据库的进行基础数据交互的案例——使用Java后台

    微信小程序与本地数据库的进行基础数据交互的案例--使用Java后台 案例介绍 本地数据库储存用户信息表 后台Java访问数据库,获得需要数据 小程序端访问服务器 环境配置及需要的项目代码资源: 案例介 ...

  9. 微信小程序:数据存储、传值、取值

    小程序界面传值 父级界面:A界面 子级界面:B界面 一.url传值 详细的配置参数可以查看组件导航:navigator,这里不再做过多的解释. 1. 正向传值:A界面 –>B界面 用 navig ...

  10. 微信小程序从本地相册加载图片并显示

    需求 从本地相册获取照片并且生成轮播图,然后通过照片的元数据读取时间.地点等信息. 实现 图片主要通过url访问,微信api读取图片时会返回图片的url,通过设定数组,存储图片的url. 对象设置: ...

最新文章

  1. .NET Core 2.0 Preview 2为开发人员带来改进
  2. boost::coroutine模块实现layout的测试程序
  3. 在c++中使用gotoxy
  4. 互联网晚报 | 3月22日 星期二 |​ ​工作人员标注mu5735残骸并展开调查;万门大学疑似解散VIP群跑路...
  5. 电子商务c语言实训报告,中南民族大学电子商务C语言实验报告.doc
  6. SpringCloud 阶段总结
  7. 关于git push报403的问题
  8. 08TensorFlow2.0基础--8.5张量运算
  9. 利用泛型写一个简单的链表
  10. AtomicReference原子性引用
  11. 背诵华为hcia认证考试题库答案能过吗?华为认证等级是怎样的
  12. java 中文乱码转换_java中文乱码怎么转换
  13. 【汇编语言】DOSBox教程
  14. does not point to a valid jvm installation
  15. mac抹掉磁盘重装系统未能与服务器取得联系_苹果笔记本怎么重装系统
  16. word文档通配符换行_Word怎么批量删除分隔符
  17. 7月份火爆Github的热门Python项目
  18. 官方教程之短视频app源码接入openinstall实现免填邀请码功能
  19. go build在mac系统下生成可执行文件时隐藏终端
  20. redis热key监控

热门文章

  1. CSS 中文字体格式
  2. idea 主题文字大小修改
  3. python根据题库答案自动答题_直播答题助手 自动检测出题、搜索答案
  4. OpenCV3编程入门(毛星云)读书笔记(一)
  5. 电力电子,电机控制系统的建模与仿真
  6. 航空模型手工制作_小学生简易航空模型的制作
  7. Keil5在线调试汇总及基本操作教程
  8. 乔姆斯基生成语法_乔姆斯基(乔姆斯基转换生成语法理论)
  9. php 获得京东的数据,利用php封装函数抓取京东商城省市县数据
  10. EXCEL自定义填充柄