-
2022-04-19 21:00:35
一、写入本地数据
小程序提供了读写本地数据缓存的接口,通过wx.setStorage写数据到缓存,在小程序中几乎所有接口都是异步的,这里存储数据也是异步操作,如果希望进行同步存储需要调用wx.setStorageSync.
异步存储:
wx.setStorage({ data: {name:"猪",age:4},//需要存储的内容。只支持原生类型、Date、及能够通过JSON.stringify序列化的对象。 key: 'list',//本地缓存中指定的 key })
同步存储:
wx.setStorageSync('list1', {name:"猪",age:5})
一、读取本地数据
异步存储:
wx.getStorage({ key: 'list', success(res){ console.log(res); } })
同步存储:
const list = wx.getStorageSync('list')
三、缓存的限制和隔离
- 小程序宿主环境会管理不同小程序的数据缓存,不同小程序的本地缓存空间是分开的,每个小程序的缓存空间上限为10MB,如果当前缓存已经达到10MB,再通过wx.setStorage写入缓存会触发fail回调。
- 小程序的本地缓存不仅仅通过小程序这个维度来隔离空间,考虑到同一个设备可以登录不同微信用户,宿主环境还对不同用户的缓存进行了隔离,避免用户间的数据隐私泄露。
- 由于本地缓存是存放在当前设备,用户换设备之后无法从另一个设备读取到当前设备数据,因此用户的关键信息不建议只存在本地缓存,应该把数据放到服务器端进行持久化存储。
更多相关内容 -
微信小程序本地缓存数据增删改查实例详解
2020-12-09 11:31:39微信小程序本地缓存数据增删改查实例详解 数据如: var user = { name: 'Lion', sex: 'guy' } CRUD: // 添加 wx.setStorageSync('user', user); // 查询 var developer = (wx.getStorageSync('user') || [])... -
微信小程序之本地缓存
2021-03-29 21:07:50目前,微信给每个小程序提供了10M的本地缓存空间 有了本地缓存,你的小程序可以做到: 离线应用(已测试在无网络的...小程序本地缓存的实现基于上述方式实现。但是数据究竟是存储在ROM,还是存储在RAM后进行持久化,这 -
微信小程序本地缓存数据增删改查
2021-03-29 19:46:54数据如: [javascript] view plain copy 在CODE上查看代码片派生到我的代码片 var user = { name: 'Lion', sex: 'guy' } CRUD: // 添加 wx.setStorageSync('user', user); // 查询 var developer = (wx.... -
微信小程序如何修改本地缓存key中单个数据的详解
2020-11-28 10:45:38点击‘我的’时,我让它从控制台打印出student缓存中传过来的数据,如下: {no: "1635050601", name: "张三", sex: "", email: "123@qq.com", classid: "100000-1602", …} classid:"100000-1602" classname:"16级... -
微信小程序本地缓存的使用
2021-11-29 11:16:53操作缓存的方法: 1、wx.setStorage/wx.setStorageSync:根据key设置缓存 2、wx.getStorage/wx.getStorageSync:根据key获取缓存,有一个success(res)回调函数,res就是数据 3、wx.clearStorage/wx.clearStorageSync...操作缓存的方法:
1、wx.setStorage/wx.setStorageSync:根据key设置缓存
2、wx.getStorage/wx.getStorageSync:根据key获取缓存,有一个success(res)回调函数,res就是数据
3、wx.clearStorage/wx.clearStorageSync:清除全部的缓存
4、wx.removeStorage/wx.removeStorageSync:删除根据key的缓存// pages/test3/test3.js Page({ data:{ shuju:[ { name:'aaa', age:16 }, { name:'bbb', age:17 }, { name:'ccc', age:18 } ] }, click:function(){ var k = this.data.shuju; //设置某个缓存 wx.setStorage({ key: 'key', data: k }) //获取缓存 wx.getStorage({ key: 'key', success(res) { console.log(res.data) } }) /清理本地缓存 wx.clearStorage() //从本地缓存中移除指定 key wx.removeStorage({ key: 'key', }) } })
-
详解微信小程序缓存–缓存时效性
2020-11-28 21:26:08关于本地缓存 1.wx.setStorage(wx.setStorageSync)、wx.getStorage(wx.getStorageSync)、wx.clearStorage(wx.clearStorageSync)可以对本地缓存进行设置、获取和清理。本地缓存最大为10MB 2.localStorage 是... -
微信小程序 数据缓存实现方法详解
2020-12-09 08:17:46微信小程序可以通过wx.setStorage(wx.setStorageSync)、wx.getStorage(wx.getStorageSync)、wx.clearStorage(wx.clearStorageSync)对本地缓存进行设置、获取和清理。本地缓存最大为10MB。 wx.setStorage()——... -
微信小程序播放缓存的音频文件
2021-03-29 17:50:07但是最近在处理微信小程序播放缓存到本地的音频文件的时候,遇到一些小问题,然后对于安卓和IOS需要采用不同的播放策略。 首先,如果哪怕用audio标签来播放在线的音频文件,假如服务端没有实现断点续传,IOS是无法... -
微信小程序 缓存(本地缓存、异步缓存、同步缓存)详解
2021-01-20 08:25:34微信小程序 缓存 关于本地缓存 1.wx.setStorage(wx.setStorageSync)、wx.getStorage(wx.getStorageSync)、wx.clearStorage(wx.clearStorageSync) 可以对本地缓存进行设置、获取和清理。本地缓存最大为10MB 2.... -
IOS中微信小程序播放缓存的音频文件的方法
2020-08-28 09:33:30本文给大家分享的是如何在微信小程序中播放缓存到本地的音频文件的方法,区分了IOS和安卓的不同策略,非常不错,推荐给大家 -
微信小程序缓存过期时间的使用详情
2020-11-28 02:24:42关于本地缓存 1.wx.setStorage(wx.setStorageSync)、wx.getStorage(wx.getStorageSync)、wx.clearStorage(wx.clearStorageSync)可以对本地缓存进行设置、获取和清理。本地缓存最大为10MB 2.localStorage 是... -
微信小程序接口封装,以及本地缓存方法封装和使用
2021-09-23 22:30:51微信小程序接口封装,以及本地缓存方法封装和使用 -
微信小程序 本地数据存储实例详解
2020-11-28 07:10:48微信小程序 本地数据存储实例详解 前言 如果您在看此文章之前有过其他程序的...每个微信小程序都可以有自己的本地缓存,可以通过 wx.setStorage(wx.setStorageSync) wx.getStorage(wx.getStorageSync)、 wx.cl -
【微信小程序】缓存过期时间的相关设置
2022-07-01 15:08:57每个微信小程序都可以有自己的本地缓存,可以通过 、、可以对本地缓存进行设置、获取和清理。 但是微信默认设置了缓存是无限长的过期时限,这对于我们的小程序开发,是非常不好的。 我正在开发的项目中,...微信小程序缓存机制介绍
每个微信小程序都可以有自己的本地缓存,可以通过
wx.setStorage(wx.setStorageSync)
、wx.getStorage(wx.getStorageSync)
、wx.clearStorage(wx.clearStorageSync)
可以对本地缓存进行设置、获取和清理。但是微信默认设置了缓存是无限长的过期时限,这对于我们的小程序开发,是非常不好的。
哪些是一定需要过期的缓存
我正在开发的项目中,用户通过第三方登录拿到一个
token
,每次请求都必须带上token
,但是token
的时限是30分钟。所以
token
就属于有必要当成缓存,但是又必须设置缓存时限的数据。写法
在用户登录成功后,把过期时间、token一起存入缓存:
// 设置token缓存 wx.setStorageSync('token', res.data.token); // 当前时间 var timestamp = Date.parse(new Date()); // 加上过期期限 var expiration = timestamp + 1200000; //缓存20分钟 // 存入缓存 wx.setStorageSync('data_expiration', expiration);
在
app.js
入口文件里,监测是否超时:// 缓存是否过期 _isExpiration() { // 当前时间 var timestamp = Date.parse(new Date()); // 缓存中的过期时间 var data_expiration = wx.getStorageSync("data_expiration"); // 如果缓存中没有data_expiration,说明也没有token,还未登录 if (data_expiration) { // 如果超时了,清除缓存,重新登录 if (timestamp > data_expiration) { wx.clearStorageSync(); return true; }else{ return false; } } return true; },
-
微信小程序中网络请求缓存的解决方法
2020-11-27 22:52:29看到这个问题的时候,首先想到的是在响应头上加上cache-control,经过测试发现小程序并不支持网路请求缓存。搜索发现官方明确答复,小程序不支持网络请求缓存:wx.request不支持http缓存 既然官方不支持网络请求缓存... -
微信小程序开发本地缓存问题
2021-09-10 09:22:05本人是小白,想问一个问题,关于本地缓存,只要我清除数据缓存,再添加收藏的内容,只能添加空对象,有什么解决办法,或者有没有更好的处理本地缓存的方式,欢迎大家指教,勿喷。。 -
微信小程序学习笔记之本地数据缓存功能详解
2020-10-17 05:57:04主要介绍了微信小程序学习笔记之本地数据缓存功能,结合实例形式分析了微信小程序wx.setStorage、wx.getStorage以及wx.removeStorage、wx.clearStorage针对数据缓存的存取、删除等相关操作技巧,需要的朋友可以参考下 -
微信小程序基于本地缓存实现点赞功能的方法
2020-12-29 03:09:13本文实例讲述了微信小程序基于本地缓存实现点赞功能的方法。分享给大家供大家参考,具体如下: wxml中的写法 注意: 1. 使用wx:if={{condition}} wx:else实现图标的切换效果; 2. 为图片绑定点击事件bindtap=to... -
微信小程序开发:小程序的本地数据缓存
2022-03-28 11:04:18微信小程序提供了同步和异步两组读写本地数据缓存的接口。 读取本地数据 wx.getStorage 异步读取本地缓存数据,使用success、fail等回调函数处理接口调用情况 // 异步读取本地缓存 wx.getStorage({ key: 'key1', ...小程序的本地数据缓存
本地数据缓存,指的是把数据
存储在当前设备硬盘
上,妥善使用本地数据缓存,可以带来良好的用户体验。微信小程序提供了同步和异步两组读写本地数据缓存的接口。
读取本地数据
wx.getStorage
异步读取
本地缓存数据,使用success
、fail
等回调函数处理接口调用情况// 异步读取本地缓存 wx.getStorage({ key: 'key1', success: function(res) { // 异步接口在success回调才能拿到返回值 var value1 = res.data }, fail: function() { console.log('读取key1发生错误') } })
wx.getStorageSync
同步读取
本地数据缓存,使用try...catch...
处理读取的错误信息。try{ var value2 = wx.getStorageSync('key2') }catch (e) { console.log('读取key2发生错误') }
读取本地数据缓存接口的参数
key
:字符串类型,必填项,本地缓存中指定的key
success
:异步接口调用成功的回调函数
fail
:异步接口调用失败的回调函数
complete
:异步接口调用结束的回调函数,无论成功失败都会执行写入本地数据
wx.setStorage
异步写入本地数据缓存
,使用回调函数处理接口调用情况wx.setStorage({ key:"key", data:"value" success: function() { console.log('写入value成功') }, fail: function() { console.log('写入value发生错误') } })
wx.setStorageSync
同步接口写入本地数据缓存
,使用try...catch...
处理接口调用情况try{ wx.setStorageSync('key', 'value') console.log('写入value成功') }catch (e) { console.log('写入value发生错误') }
写入本地数据缓存接口的参数
key
:字符串类型,必填项,本地缓存中指定的key
success
:异步接口调用成功的回调函数
fail
:异步接口调用失败的回调函数
complete
:异步接口调用结束的回调函数,无论成功失败都会执行
data
:需要存储到本地的数据,可以是string/object格式数据存储到本地硬盘后,会自动根据不同小程序对数据进行区分,在本地硬盘上,每个小程序的缓存上限是
10M
,超出缓存上限后再写入数据就会报错。同时,根据不同的微信登录账号,也会对数据进行隔离,不同账号的数据分别存储,避免照常用户间的数据泄露。
-
微信小程序实现缓存过期时间
2022-05-20 16:48:20微信小程序实现缓存过期时间前言一、设置缓存二、得到缓存总结 前言 先来看看官方文档 wx.setStorageSync(string key, any data) 将数据存储在本地缓存中指定的 key 中。会覆盖掉原来该 key 对应的内容。除非用户... -
微信小程序中如何正确使用本地数据缓存
2022-07-21 06:27:28本地数据缓存是小程序存储在当前设备上硬盘上的数据,本地数据缓存有非常...我们还可以利用本地缓存一些服务端非实时的数据提高小程序获取数据的速度,在特定的场景下可以提高页面的渲染速度,减少用户的等待时间。... -
怎么清理微信小程序缓存 微信小程序缓存删除的方法
2021-08-06 09:05:23微信小程序上线之后,关注的小程序越多,哪么将占用的手机空间就越大,这些程序会产生一定的缓存,那么怎么清理小程序缓存呢?微信小程序内的缓存到底如何清除?和小编一起来看看删除微信小程序缓存的方法吧。一些小...