每个小程序都可以有自己的本地缓存,可以通过 数据缓存的API 实现对本地缓存进行 设置、获取和清理。本地缓存最大为10M。localStorage是永久存储的,但我们不建议将关键信息都放在localStorage,以防用户更换设备。

设置本地缓存

1、wx.setStorage(OBJECT)

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

该接口参数:

参数key,     string类型,         必填项,本地缓存中指定的key。

参数data,   object/string类型,必填项,需要存储的内容。

参数success,fail,complete,均为Function类型,分别对应接口调用成功、失败和结束时的回调函数。

示例代码如下:

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

2、wx.setStorageSync(KEY,DATA)

该接口是同步接口,用于将data存储在本地缓存中指定的key中。会覆盖掉该key对应的原来的内容。

该接口参数:

参数key,     string类型,         必填项,本地缓存中指定的key。

参数data,   object/string类型,必填项,需要存储的内容。

示例代码如下:

try{
wx.setStorageSync('key', 'value')
}catch(e) {
}

获取/删除 本地缓存

1、wx.getStorage (OBJECT) 和 wx.removeStroage (OBJECT)

wx.getStorage (OBJECT) 用于从本地缓存中异步获取指定key对应的内容。

wx.removeStroage (OBJECT) 用于从本地缓存中异步删除指定key对应的内容。

该接口参数:

参数key,          string类型,          必填项,本地缓存中指定的key。

参数success,   Function类型,      必填项,接口调用成功时的回调函数,res = {data: key 对应的内容}

参数fail,        Function类型,      非必填,接口调用失败时的回调函数

参数complete,  Function类型,      非必填,接口调用结束时的回调函数(调用成功或失败都会执行)

示例代码如下:

wx.getStorage({
key: 'key',
success: function(res) {
console.log(res.data)
}
}); wx.removeStorage({
key: 'key',
success: function(res) {
console.log(res.data)
}
})

2、wx.getStorageSync (KEY) 和 wx.removeStroageSync (KEY)

wx.getStorage (KEY) 用于从本地缓存中同步获取指定key对应的内容。

wx.removeStroage (KEY) 用于从本地缓存中同步删除指定key对应的内容。

参数为key,必填项,是本地缓存中的指定的key。

var value = wx.getStorage('key')
if (value) {
//Do something with return value
} try {
wx.removeStorageSync('key')
} catch(e) {
//Do something when catch error
}

获取当前storage的相关信息

1、wx.getStorageInfo (OBJECT)

该接口用于异步获取当前storage的相关信息。

该接口参数:

参数success(必填)、fail、complete,分别对应接口调用成功、失败和结束时的回调函数。其中success是必填项。

success返回参数说明如下:

keys,Sting Array类型,返回storage中所有key。

currentSize,Number类型,表示当前占用的空间大小,单位为kb。

limitSize,Number类型,表示限制的空间大小,单位为kb。

示例代码如下:

wx.getStorageInfo({
success:function(res) {
console.log(res.keys)
console.log(res.currentSize)
console.log(res.limitSize)
}
})

2、wx.getStorageInfoSync()

该接口用于同步获取当前storage相关信息。

示例代码如下

try {
var res = wx.getStorageInfo()
console.log( res.keys )
console.log( res.currentSize )
console.log( res.limitSize )
} catch (e) {
// Do something when catch error
}

清理数据缓存

1、wx.clearStorage()

该接口用于清理本地数据缓存。

2、wx.clearStorageSync()

该接口则用于同步清理本地数据缓存。

示例代码如下:

wx.clearStorage()

try {
wx.clearStorageSync()
} catch(e) {
}

【微信小程序】开发实战 之 「数据缓存API」解析的更多相关文章

  1. 微信小程序开发实战视频教程

    微信小程序开发实战视频教程发布  有全套的 pan.baidu.com/s/1o8GuJOY 密码:2dbo 腾讯终于发布了没有APPid,无需申请也可以进行微信小程序开发的视频教程了,我在在第一时间 ...

  2. [干货教程]仿网易云课堂微信小程序开发实战经验

    本篇文章想跟大家分享下:我们公司“湖北诚万兴科技”最近刚帮客户定制开发.目前已上线的“哎咆课堂”微信小程序的开发经验分享.首先大概介绍下这个小程序所涉及到的主要技术点:微信登录.微信支付.微信小程序F ...

  3. 微信小程序开发实战视频教程发布

    昨日(9月23),腾讯终于发布了没有APPid,无需申请也可以进行微信小程序开发的视频教程了,我在在第一时间尝试并发布了这7个小视频教程,入门足够了.... 各位免费拿去,慢慢享用: 链接: http ...

  4. WordPress版微信小程序开发系列(一):WordPress REST API

    自动我发布开源程序WordPress版微信小程序以来,很多WordPress站长在搭建微信小程序的过程中会碰到各种问题来咨询我,有些问题其实很简单,只要仔细看看我写的文章,就可以自己解决.不过这些文章 ...

  5. 微信开发(2)---微信小程序开发实战part1

    微信开发现在来说,简单可以概括为两部分,微信公众号和微信小程序. 微信公众号的技术已经非常成熟.分为服务号和订阅号.简单的.可以弄一个个人订阅号,在编辑模式下就可以实现推送图文.自动回复.自定义菜单的 ...

  6. 微信小程序开发实战-天气小程序

    园龄6年8个月了,还一篇文章都没写过,惭愧! 最近周末做了个天气预报小程序,在这里整理一下开发过程和注意点,给对小程序开发感兴趣的伙伴们提供点参考. 废话不多说,先上图最终效果: 下面进入正文: 第一 ...

  7. $微信小程序开发实践点滴——Bmob基本REST API的python封装

    Refer:Bmob后端云REST API接口文档:http://docs.bmob.cn/data/Restful/a_faststart/doc/index.html 本文使用python对Bmo ...

  8. 微信小程序开发实战(云开发)--资产管理工具

    添加首页 menu页面 截图展示 menu.js源码 // pages/menu/menu.js Page({ /** * 页面的初始数据 */ data: { }, /** * 生命周期函数--监听 ...

  9. 微信小程序开发3之保存数据及页面跳转

    第一  保存本地数据 1.异步保存本地数据 wx.setStorage({ key:keyStr, data:dataStr, success: function(e){}, fail: functi ...

随机推荐

  1. 《CSS权威指南(第三版)》---第五章 字体

    这章主要的内容有: 1.字体:一般使用一种通用的字体. 2.字体加粗:一般从数字100 -900 . 3.字体大小:font-size 4.拉伸和调整字体:font-stretch 5.调整字体大小: ...

  2. Linux内核同步【转】

    本文转载自:http://blog.csdn.net/a775992553/article/details/8797710 Linux设备驱动中必须解决的一个问题是多个进程对共享资源的并发访问,并发访 ...

  3. ES索引瘦身 禁用_source后需要设置field store才能获取数据 否则无法显示搜索结果

    在默认情况下,开启_all和_source 这样索引下来,占用空间很大. 根据我们单位的情况,我觉得可以将需要的字段保存在_all中,然后使用IK分词以备查询,其余的字段,则不存储. 并且禁用_sou ...

  4. smack

    XMPP/Smack/Openfire javax.net.ssl.SSLException: Received fatal alert: internal_error 解决: 1.在链接openfi ...

  5. codeforces 659A A. Round House(水题)

    题目链接: A. Round House time limit per test 1 second memory limit per test 256 megabytes input standard ...

  6. linux 进程学习笔记-named pipe (FIFO)命名管道

    与“无名管道”不同的是,FIFO拥有一个名称来标志它,所谓的名称实际上就是一个路径,比如“/tmp/my_fifo”,其对应到磁盘上的一个管道文件,如果我们用file命令来查看其文件类型的话,会得到如 ...

  7. NO0:重新拾起C语言

    因工作所需,重新捡起C语言,之前在学校里有接触过,但现在已经忘的一干二净了,现决定重新开始学习,为工作,为生活. 以<标准 C程序设计 第5版>的课程进行基础学习,同时以另外两本书为辅助, ...

  8. 1034 Head of a Gang (30)(30 分)

    One way that the police finds the head of a gang is to check people's phone calls. If there is a pho ...

  9. P2042 [NOI2005]维护数列[splay或非旋treap·毒瘤题]

    P2042 [NOI2005]维护数列 数列区间和,最大子列和(必须不为空),支持翻转.修改值.插入删除. 练码力的题,很毒瘤.个人因为太菜了,对splay极其生疏,犯了大量错误,在此记录,望以后一定 ...

  10. bzoj 4514: 数字配对

    题目大意 自己看 题解 我们打表观察规律发现一定能构成一张二分图 也就是不存在奇环 所以我们一般保证费用非负的最大流即可. #include <cstdio> #include <c ...