每个小程序都可以有自己的本地缓存,可以通过 数据缓存的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. 《高性能Javascript》 Summary(二)

    第四章.算法和流程控制 Algorithms And Flow Control 原因:代码整体结构是执行速度的决定因素之一.代码量少不一定运行速度快,代码量多不一定运行速度慢.性能损失与组织代码和具体 ...

  2. CDH版本Hbase二级索引方案Solr key value index

    概述 在Hbase中,表的RowKey 按照字典排序, Region按照RowKey设置split point进行shard,通过这种方式实现的全局.分布式索引. 成为了其成功的最大的砝码. 然而单一 ...

  3. winform中通过事件实现窗体传值思路【待修改】

    Form2向Form1传值         private Form1 form1;//定义一个类型为Form1类型的字段,用于存储传递过来的Form对象         public void Se ...

  4. Contiki 2.7 Makefile 文件(二)

    二.Makefile.include 1.第一部分 (1) ifndef CONTIKI ${error CONTIKI not defined! You must specify where Con ...

  5. Python实现结对编程项目

    Github (李昆乘)(陈俊豪) 开发流程 PSP2.1 PSP2.1 Personal Software Process Stages 预估耗时(分钟) 实际耗时(分钟) Planning 计划 ...

  6. 跨线程send message

    今天同事问了一个问题,说在线程中send message 和直接调用是不是一样,他觉得是一样的,但是线程跟踪却发现处理过程是在接收消息队列完成.回家看到博客园上的一番争论才有些明白,这里贴出来,共勉 ...

  7. leetcode 23. Merge k Sorted Lists(堆||分治法)

    Merge k sorted linked lists and return it as one sorted list. 题意:把k个已经排好序的链表整合到一个链表中,并且这个链表是排了序的. 题解 ...

  8. 集训Day12

    快乐 快乐就完事了 今天把Trie树 / 可持久化Trie树搞了一下 Trie树可以维护区间最大异或和 具体就是区间异或和 -> 区间两个前缀异或和的异或 然后就变成了 "从n个数里找 ...

  9. 创建maven多模块项目

    一:创建父项目

  10. 【Lintcode】036.Reverse Linked List II

    题目: Reverse a linked list from position m to n. Given m, n satisfy the following condition: 1 ≤ m ≤ ...