时间:2021-05-25
背景
wx.request是小程序提供的API,用于发起网络请求,在频繁并且响应较慢的业务中的请求,页面白屏或者loading时间也相应比较长,然而合理的利用缓存是个很好提升界面响应速度,减少网络资源占用的手段。
mrc提供2种换成模式用于业务中使用
短期缓存
对于实时性要求相对较低的业务场景而言,可以使用短期缓存。
短期缓存能够将接口数据在一定时间内缓存起来,在时间范围内再次请求的话,可以直接使用缓存数据,减少白屏或者loading时间。设置不同的缓存时间来适应不同的业务,还可以有效的节约网络资源
快照缓存
类比搜索引擎的快照,针对请求响应较慢的并且实时性又比较高的场景而言,可以使用快照缓存。
快照缓存每次请求都会先返回上一次缓存数据作为结果返回,然后再去请求,等到请求返回之后再更新缓存,业务方可以对比2次返回结果进行局部渲染
使用
mrc以一种侵入式最小的方式封装了原生的resquest API,扩展原生API的功能,可以支持promise以及2种缓存方式。
//app.js//引入request缓存插件import Mrc from './dist/mrc.min';//实例化一个全局引用App({ wxp: new Mrc({ prefix: '___CACHE___', //选填,存储字段前缀,默认___CACHE___ timeout: 600000, //选填,缓存多长时间,单位ms,默认10分钟 }),})//page.jsconst app = getApp()let {wxp} = appPage({ data: { }, onLoad: function () { wxp.request({ url: 'http://xxxxxx', cache: { enable: true, //选填,是否开启缓存,默认false type: 'snapshot', //选填,开启缓存类型,定时(timeout)、快照(snapshot),默认定时 timeout: 600000, //选填,定时缓存时间,使用优先级,当前配置>全局配置>默认配置 }, }) .then((res) => { //快照缓存时会多返回一个正式请求的promise对象,用于获取正式请求的数据 return res.req; }) .then((res) => { console.log(res); }) },})特性
对比
类型 是否持久化 是否每次都请求 实时性 快照缓存 是 是 高 短期缓存 否 否 低
配合骨架屏来使用效果更佳!!!
总结
缓存插件的使用可以有效的提升页面打开速度,并且在频繁的网络请求中可以有效的节约服务器资源。具体的调用方式和源码,请看 github ,最后求start
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持。
声明:本页内容来源网络,仅供用户参考;我单位不保证亦不表示资料全面及准确无误,也不保证亦不表示这些资料为最新信息,如因任何原因,本网内容或者用户因倚赖本网内容造成任何损失或损害,我单位将不会负任何法律责任。如涉及版权问题,请提交至online#300.cn邮箱联系删除。
微信小程序之数据缓存的实例详解前言:在H5之前,缓存一般都是用cookie,但是cookie的存储空间太小。于是,H5增加了新的缓存机制,即localstora
腾讯视频插件加载失败的原因及解决方法如下: 1、浏览器缓存过多。可以打开浏览器的设置界面,将缓存清除; 2、如果使用腾讯视频小程序时出现这种问题,可以进入微
微信小程序清除缓存怎么实现?微信小程序怎么清除缓存?有一些用户表示微信小程序的缓存太多,想要清楚微信小程序缓存却不知道怎么去做,接下来小编为大家介绍微信小程
1、小程序插件简介小程序插件是可以被开发者添加到小程序内直接使用的,能为用户提供具体服务的功能组件。插件开发者可像开发小程序一样开发插件,除了在自己的小程序内使
编写插件程序时,可能需要读取一些插件的信息,如果插件需要使用者进行配置,还需要读取使用者设置的参数值。Discuz!允许插件程序使用数据库读取和缓存读取这两种方