wxsetStorage(wxsetStorageSync)、wxgetStorage(wxgetStorageSync)、wxclearStorage(wxclearStorageSync)
localStorage :是永久存储,以用户维度隔离,同一台设备上,A 用户无法读取到 B 用户的数据。
在小程序中无 Sync 结尾的本地缓存中,都为 异步缓存
wxsetStorage(object)
参数object说明
控制台
表示储存成功
wxgetStorage(object)
示例
这个key值就是先前setStorage的命名key,证明指定获取那个缓存中的数据
wxclearStorage(object)
清理本地数据缓存
将之前储存在Storage中的数据清空。适用于退出登录后登录信息的清除
wxgetStorageInfo(object)
异步获取当前storage的相关信息( 当前小程序里面所有的storage的储存信息 )
参数说明
执行结果
wxremoveStorage(OBJECT)
从本地缓存中异步移除指定 key值
获取当前data值时将报错undefined
执行结果
storage缓存数据
以键值对key, data的形式存储数据,单个 key 允许存储的最大数据长度为 1MB,所有数据存储空间最大为10M。
属性 类型 默认值 必填 说明
key string 是 本地缓存中指定的 key
data any 是 需要存储的内容。只支持原生类型、Date、及能够通过JSONstringify序列化的对象。
不带Sync的为异步,带Sync的为同步,需要做异常处理,防止阻塞主程序。
分别为set存储、get得到一个、getInfo得到所有,remove移除一个、clear清除所有
隔离策略
同一个微信用户,同一个小程序 storage 上限为 10MB。storage 以用户维度隔离,同一台设备上,A 用户无法读取到 B 用户的数据;不同小程序之间也无法互相读写数据。
插件隔离策略
同一小程序使用不同插件:不同插件之间,插件与小程序之间 storage 不互通。
不同小程序使用同一插件:同一插件 storage 不互通。
清理策略:
本地缓存的清理时机跟代码包一样,只有在代码包被清理的时候本地缓存才会被清理。
二save File缓存文件
本地文件存储的大小限制为 10M
三,database服务端数据库存储数据存储数据至服务器端。
四upload File,上传文件存储文件至服务器端。
云函数uploadFile文件名命名限制
不能为空
不能以/开头
不能出现连续/
编码长度最大为850个字节
推荐使用大小写英文字母、数字,即[a-z,A-Z,0-9]和符号 -,!,_,, 及其组合
不支持 ASCII 控制字符中的字符上(↑),字符下(↓),字符右(→),字符左(←),分别对应 CAN(24),EM(25),SUB(26),ESC(27)
如果用户上传的文件或文件夹的名字带有中文,在访问和请求这个文件或文件夹时,中文部分将按照 URL Encode 规则转化为百分号编码。
不建议使用的特殊字符: ` ^ " \ { } [ ] ~ % # \ > < 及 ASCII 128-255 十进制
可能需特殊处理后再使用的特殊字符: , : ; = & $ @ + (空格)及ASCII 字符范围:00-1F 十六进制(0-31 十进制)以及7F(127 十进制)
封装小程序获取手机号接口及按钮:
getPhoneNumber(e) {
thisactiveUser(edetailiv, edetailencryptedData);
},
activeUser(iv, encryptedData) {
let url = appglobalDataURL + '/front/employeeInfo/activeUser';
let openid = wxgetStorageSync('Openid')
wxrequest({
url: url,
data: {
iv: iv,
encryptedData: encryptedData,
openid: openid
},
success: function (res) {
if (resdatadata) {
wxsetStorage({
key: 'active',
data: resdatadata,
})
} else {
wxshowToast({
title: '没注册不能激活',
})
}
}
})
}
<button open-type="getPhoneNumber" bindgetphonenumber="getPhoneNumber">获取手机号</button>
调用微信扫一扫功能:
<text bindtap="bx">报修</text>
bx:function(){
wxscanCode({
success(res) {
consolelog(res)
}
})
},
由于我们刚进入页面的时候,就需要获取到对应的地理位置,所以我们需要把方法写入appjs全局文件中,然后将其存入storage中,由于存储的要求必须是字符串,所以我们存入的时候需要将其转化为字符串,使用到的时候再将其转换为对象。需要将其写在try catch里面。
utils/getLocationjs(这是封装好的)
appjs
再其他页面使用的时候,在onLoad中将其存入到data里面,使用的时候只需要调用data(_thisdataaddressInfo)里面的数据即可
注意:像这样通用的,复用的属性或者方法,都可以这样去写,例如openid,获取地理位置等。
不需要授权,微信小程序提供的API中有一个setStorage和getStorage用于存储数据,这两个API可以实现小程序的数据存储,无需授权,而且存储空间有限,每个用户最多可以存储10M的数据,可以多次存储,但是考虑到性能问题,最好不要把大量数据存储到小程序的Storage中。
以上就是关于缓存问题之异步处理(微信小程序)全部的内容,包括:缓存问题之异步处理(微信小程序)、微信小程序用户评论怎么存储、小程序获取手机号和调用微信扫一扫事例(不喜勿喷喔~)等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)