微信小程序缓存获取数据教程
每个微信小程序都可以有自己的本地缓存,可以通过 wx.setStorage(wx.setStorageSync)、wx.getStorage(wx.getStorageSync)、wx.clearStorage(wx.clearStorageSync)可以对本地缓存进行设置、获取和清理。同一个微信用户,同一个小程序 storage 上限为 10MB 。localStorage 以用户维度隔离,同一台设备上,A 用户无法读取到 B 用户的数据。

数据常用于哪里?

对于数据需求较小的历史记录、购物车事件等都可以使用 storage 进行缓存, Storage 将数据存储在本地缓存中指定的 key 中,如果重复会覆盖掉原来该 key 对应的内容 可以参照微信小程序开发手册中的Storage

如何使用异步接口进行数据缓存?

将数据存储在本地缓存中指定的key中,会覆盖掉原来该key对应的内容,这是一个异步接口。

OBJECT参数说明:

示例代码

wx.setStorage({ key:key,
data:value })

当 setStorage 之后可以去到开发者工具里面查看 这是没有保存值的情况

可以看到是没有 key

值的 那么当我们去进行输入搜索

最后再去 storage

中查看

获取到了一个 key 为 history 的 Array

数组 那么再去看看storage

得到了一个数组而且没有被覆盖,那么怎么实现的呢? 先来看看js代码

search.js

设置data

data: {
status:false,
inputsearch:’’,
job:[],
history:[],

},

首先去获取storage中的值

onLoad: function (options) {
var that =this;
wx.getStorage({
key: ‘history’,
success: function(res){
that.setData({
history:res.data,
})
if(that.data.history.length==0){
that.setData({
status:false
});
}else{
that.setData({
status:true
})
}
},
fail: function(res) {
console.log(res+‘aaaaa’)
}
});
},

进行搜索和缓存数据到storage中

search:function(e){

var that =this;

var sear =this.data.inputsearch;

var jobs=this.data.job;

var input = new RegExp(sear);

var temp = [];

if(sear == ‘’){

wx.showToast({
title: ‘请输入要搜索信息’,
icon:none,
duration: 1000
});
return false;
}else{
this.data.history.unshift(sear);
wx.setStorage({
key: ‘history’,
data: that.data.history,
success: function(res){
that.setData({
history:that.data.history,
status:true
})
console.log(res.data);
},
})
for(let i =0;i
if(input.test(jobs[i].job) || input.test(jobs[i].company) || input.test(jobs[i].address)){
temp.push(jobs[i]);
var detail=temp;
app.globalData.details=detail;
}
}
if(temp ==’’){
wx.showToast({
title: ‘暂无此信息’,
icon:none,
duration: 1000

});
this.setData({
inputsearch:’’
})
}else if(temp){
wx.navigateTo({
url:’…/about/about’
})
this.setData({
inputsearch:’’
})
}
}
},

将 storage 中的 key 值设为 hisotry

wx.setStorage({
key: ‘history’,
data: that.data.history,

)}

定义一个数组 history 空数组去获取 storage 中的值,首先是去查询有没有该 key 值,如果没有则 fail ,那么 history 依然为空数组

wx.setStorage({
key: ‘history’,
data: that.data.history,
success: function(res){
that.setData({
history:that.data.history,
status:true
})
},

})

返回得到 history 之后再去将 inputsearch 的值添加到 history 中

这里有个误区可能你会将输入的值inputsearch push到一个新的空数组,然后再将这个新数组push到history数组中,但这个方法显然不可行,你添加之后新数组将会存放在history数组的第一个下标的数组下,对于history数组也就只有两个值

好了,回到我要说的,那么如何将 inputsearch 添加到 history 中呢,可以使用 unshift 方法或者 push 方法,这里应该使用 unshift 应该将每个新增值存放在 history 的第一个位置,这是其实就是一个用户体验问题了

var that =this;

var sear =this.data.inputsearch;

this.data.history.unshift(sear);

wx.setStorage({
key: ‘history’,
data: that.data.history,
success: function(res){
that.setData({
history:that.data.history,
status:true
})
console.log(res.data);
},
})

好了,这样就不会出现“覆盖掉”原来的 key 值的问题了

相关资讯: 微信小程序 微信小程序开发教程

微信小程序缓存获取数据教程相关推荐

  1. 许嵩音乐智能问答系统微信小程序之获取数据及文本分类

    许嵩音乐智能问答系统微信小程序之获取数据及文本分类 项目简介. 音乐播放器搭建. 获取数据及文本分类. 智能客服聊天界面. 连接前端微信小程序输入和后端python,并返回值 连接知识图谱 数据获取 ...

  2. 微信小程序批量获取input的输入值,监听输入框,数据同步

    微信小程序批量获取input的输入值,监听输入框,数据同步 在使用小程序时,跟vue的数据绑定不一样,没有v-model这个属性了,官网也只是给了一些事件监听. 但是我们如果有多个表单时,需要写多个事 ...

  3. 微信小程序之获取后台动态数据表格布局display:table

    微信小程序之获取后台动态数据表格布局display:table 猿来独往 2018-09-02 本文没有采用flex布局和grid布局来设置表格的,而是通过 display: table;来设置. 一 ...

  4. 同时存多个变量缓存 微信小程序_微信小程序 缓存(本地缓存、异步缓存、同步缓存)详解...

    微信小程序 缓存 关于本地缓存 1.wx.setStorage(wx.setStorageSync).wx.getStorage(wx.getStorageSync).wx.clearStorage( ...

  5. 本地缓存需要高时效性怎么办_详解微信小程序缓存--缓存时效性

    关于本地缓存 1.wx.setStorage(wx.setStorageSync).wx.getStorage(wx.getStorageSync).wx.clearStorage(wx.clearS ...

  6. 小程序 微信统计表格_微信小程序简单的数据表格及查询功能

    简介: 此项目是一个前后端分离的小demo, 开发工具:idea+微信小程序开发工具 前端:界面布局样式和js的跳转 后端:依靠SpringBoot的业务逻辑层 项目的码云地址: 微信开发工具的使用和 ...

  7. 微信小程序地图获取地点信息(打卡签到功能为例)-2020-7-26

    目录 微信小程序地图获取地点信息(打卡签到功能为例) 效果图 前提步骤 首先需要了解的 代码部分 配置性代码 功能性代码 demo 下载 微信小程序地图获取地点信息(打卡签到功能为例) 解决方案:利用 ...

  8. 微信小程序之获取用户地址

    在微信小程序中获取定位信息 今天一整天基本上都在处理在微信小程序中获取准确地址,给出定位并给出所在城市的问题.经过走了半天弯路,现在总结一下所需要的步骤. 一. 先到腾讯位置服务中心获取KEY 通过小 ...

  9. 微信小程序制作——获取用户信息

    微信小程序制作--获取用户信息 1.获取用户信息 方式一 wxml <view bindtap="getUserName">获取当前用户名</view> j ...

最新文章

  1. php要怎么使用imagettftext_延长防腐木使用要怎么做呢?
  2. fsl线性配准介绍+核磁共振影像数据处理
  3. Windows 08 R2_创建AD DS域服务(图文详解)
  4. clcikhouse Code: 1000. DB::Exception: File not found
  5. 笔记28 接受请求的输入 ——处理表单
  6. 缺省参数-指定函数缺省参数的默认值
  7. mysql 经典入门教程_MySQL 经典入门教程
  8. 常用宏定义 - 系统相关
  9. 数学学得好是一种怎样的体验?
  10. python使用复合语句def创建函数对象_Python 纯函数
  11. 基于gstreamer的支持动态获取多路流的rtsp server(笔记)
  12. java 根据类名示例化类_Java收集器类– 18个示例
  13. 【已解决】ipa降级教学 苹果旧版APP下载
  14. 25 逆波兰表达式、波兰表达式
  15. 英尺英寸和厘米的换算_中国的尺和厘米的换算,英尺英寸和厘米换算
  16. HEVC之CU、PU、TU分析
  17. Shutting down firmware services 报错
  18. linux shell -常用脚本
  19. 利用matplotlib绘制圆环图的案例
  20. .net 发送电邮_关于如何使用.NET发送电子邮件的快速参考

热门文章

  1. Windows的Docker Beta版本
  2. 上海将设大数据交易中心 市场化民营化运作
  3. Docker2 docker commit方法镜像制作
  4. 计算机领域tip期刊,东南大学本科生论文被计算机图像处理领域顶级期刊TIP录用...
  5. 网贷之家发布《11月全国P2P平台“百强榜”》
  6. 【Cocos2D-X 游戏引擎】初窥门径(1) 制作一个动态的精灵
  7. G-Nut/Anubis
  8. 大数据之父_“大数据之父”舍恩伯格最新演讲:大数据重塑制造业(含视频)...
  9. 因受疫情影响!iPhone销量持续下降,苹果公司敲响了警钟
  10. 15款经典图表软件推荐