微信小程序入门(七):缓存数据-单条数据

微信小程序入门(七):缓存数据-单条数据,第1张

微信小逗斗程序的编写中,涉及到有些业务场景需要将数据缓存到本地,则微信小程序api提供了两个接口函数,

wx.setStorage可以将数据缓存在本地指定的key中,如果本地缓存已经存在指定的key,则会覆盖该key对应的内容,这是一个异步的接口,在调用时会涉及到成功,失败,完成三个状态,

与wx.setStorage唯一不同的就是wx.setStorageSync是同步进行的,所以不会涉及到成功,失败,完成等回调,但是在使用时需要使用try.......catch....来捕获异常;

现在编写一个将字符串缓存本地的例子

编译项目扰扮,点击缓存按钮:

现在改变缓存的内容,但是缓存的key保持不变

可以看到第二次的内容把第一次覆盖了。

将内容缓存到本地之后,将其从本地提取展示出来,则可是使用微信小程序api提供的两个接口:wx.getStorageInfo(Object object),wx.getStorageSync(string key),与缓存同样,读取缓存也分同步和异缓指灶步;

我们将刚刚存储到本地的数据展示到页面上:

编译项目,点击按钮获取缓存数据并将其展示到页面上。

完成了本地数据的缓存,获取,则接下来就是关于缓存数据的清除,同样微信小程序api也提供了可使用的接口,

至此微信小程序本地保存数据就此结束!

我们发现,小程序里面大部分API都是异步接口,这根它的双线程模型有很大关系。

以下举一个标准的异步接口 showToast 。

在logic层,我们调用了 showToast 方法:

实际上此春陵这接口发到 master 层森渗去处理的:

考虑到我们的接口都是异步回调,在 master 层处理完毕后需要通知回 logic 层:

上面我们看到了一个 msgId,这是各层间传递信息标识的唯一id,而 logic 层还需要处理回调结果森戚,我们完善一下:

在API调用的时候,把自身的回调函数缓存起来,等收到回调的信息时,执行相应的回调,再把缓存删掉。

在一些接口上,也能提供同步的接口,比如: getStorageSync 。

这个比较好理解,因为 localStorage 无论在父级页面或者iframe中都能取到,而且本身也是一个同步方法,所以可以在 master 层和 logic 层都实现一遍。

我们还发现,小程序的 setStorage 比 web 上的 localStorage 似乎可以写入的格式多一些,还支持Date格式类型,方法是通过写入JSON来实现,参照 LocalStorage

上一篇

从下图API的目录我们能看到,小程序的技术支持分为了网络、媒体、文件、数据缓存、位置、设备、界面、开放接口8个部分。下面,我们就来一个部分一个部分的看看。

1.网络功能

网络这一部分支持手机文件的上传下载,除此之外,值得注意的是支持WebSocket,这意味着可以通过小程序实现手机和服务器双向的通信, 这样小程序内容的变化就可以主动的推送给用户。例如用户的文章得到了评论,用户不用刷新页面,评论就会自动出现在页面上。另外,还可以利用这个技术做一个聊天室,可以是一对一的,就好像qq,或者多对多的,就好像qq群。

2.媒体

通过媒体的支持,我们可以实现3部分功能:1. 手机从本地相册上传图片,预览图片和处理相关图片信息;2. 实现录音的录制、上传、播放;3. 实现播放背景音乐、控制背景音乐。需要特别说明的是音频录制跟微信公众号一样,只能录制60秒,超过60秒会自动停止。不过微信公众号的录音api应该有bug,在苹果系统下,微信录音达到45秒会出现错误,音频播放乱音。不知道小程序是否有这个问题。不过,为了避免掉到坑里,还是考虑使用七牛。

3.文件

这个我就不截屏了,比较简单,支持手机存储内的文件上传下载用的,可以浏览手机存储目录,文件信息。

4.数据缓存

数据缓存很好的实现了浏览器本地迅闭缓存的功能,这意味了开发者们可以自己管理客户端的缓存了,这帮助为我们的终端用户节省流量。

5.位置

位置功能可以帮助小程序实现获取用户位置、地图定位的功能。导航?那应该是地图app的事情了。

6.设备

设备这个有点说头了。总共分为6个部分。首先可以获取手机的系统信磨早息,可包括了手机的型号,像素密度,屏幕大小,以及 *** 作系统、客户端信息,这帮助小程序页面布局、功能细节更好的适配种类繁多的手机。第二个是获取用户手机网络状态:2g、3g、4g、wifi,你可以提醒用户wifi下再观看节省流量哦~ 重力感应和罗盘可以实现涉及运动类和互动游戏类功能,比如微信运动、摇一摇。拨打电话可以嵌入到客服电话或者类似滴滴联系司机的场景里面。最后还有微信扫码接口调用相机实现线下二维码的扫描。

7.界面

这一部分,实现了基本的d出框效果、导航效果,除此之外,亩游裂特别要说明的,是微信实现了html5画布的功能,这意味着可以在小程序中实现一些简单的小游戏和卡通场景绘制。不过目前来看只支持2D界面的绘制,暂时还不支持3D。

8.开放接口

开放接口功能分类也比较多。首先为小程序提供了登录和会话管理的功能,这样登录功能的开发就可以事半功倍了。第二,获取用户的微信账户信息,当然能获得哪些信息,都是在微信允许的范围内,例如openid,昵称、头像。好多朋友都问:能不能获取到用户电话和微信号?怎么可能?!想都不要想。第三是支持微信支付。第四,模板消息。这类消息其实早在微信认证服务号里面就有,请注意是认证过的,服务号(不是订阅号)。有好多朋友不明白这种消息是干嘛的。可以主动发送给用户,没有频次限制,厉害吧?!但是内容由模板格式限制,不能发送营销内容,是不是失望了,哈哈。干什么用的呢?想象你的银行微信公众号给你发的消费通知。对,就是模板消息。第五,客服消息,支持微信客户接口,很强大。最后支持分享到微信好友和朋友圈功能,支持获取微信小程序的二维码。

当然,如果看了这些你还是不太懂,可以参考 云竹小程序,相信能够解决你的问题。


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/yw/12221184.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-21
下一篇 2023-05-21

发表评论

登录后才能评论

评论列表(0条)

保存