溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點(diǎn)擊 登錄注冊 即表示同意《億速云用戶服務(wù)條款》

小程序緩存插件的示例分析

發(fā)布時間:2021-07-06 09:48:31 來源:億速云 閱讀:113 作者:小新 欄目:web開發(fā)

這篇文章主要為大家展示了“小程序緩存插件的示例分析”,內(nèi)容簡而易懂,條理清晰,希望能夠幫助大家解決疑惑,下面讓小編帶領(lǐng)大家一起研究并學(xué)習(xí)一下“小程序緩存插件的示例分析”這篇文章吧。

背景

wx.request是小程序提供的API,用于發(fā)起網(wǎng)絡(luò)請求,在頻繁并且響應(yīng)較慢的業(yè)務(wù)中的請求,頁面白屏或者loading時間也相應(yīng)比較長,然而合理的利用緩存是個很好提升界面響應(yīng)速度,減少網(wǎng)絡(luò)資源占用的手段。

mrc提供2種換成模式用于業(yè)務(wù)中使用

短期緩存

對于實時性要求相對較低的業(yè)務(wù)場景而言,可以使用短期緩存

短期緩存能夠?qū)⒔涌跀?shù)據(jù)在一定時間內(nèi)緩存起來,在時間范圍內(nèi)再次請求的話,可以直接使用緩存數(shù)據(jù),減少白屏或者loading時間。設(shè)置不同的緩存時間來適應(yīng)不同的業(yè)務(wù),還可以有效的節(jié)約網(wǎng)絡(luò)資源

快照緩存

類比搜索引擎的快照,針對請求響應(yīng)較慢的并且實時性又比較高的場景而言,可以使用快照緩存。

快照緩存每次請求都會先返回上一次緩存數(shù)據(jù)作為結(jié)果返回,然后再去請求,等到請求返回之后再更新緩存,業(yè)務(wù)方可以對比2次返回結(jié)果進(jìn)行局部渲染

使用

mrc以一種侵入式最小的方式封裝了原生的resquest API,擴(kuò)展原生API的功能,可以支持promise以及2種緩存方式。

//app.js

//引入request緩存插件
import Mrc from './dist/mrc.min';

//實例化一個全局引用
App({
 wxp: new Mrc({
  prefix: '___CACHE___',   //選填,存儲字段前綴,默認(rèn)___CACHE___
  timeout: 600000,    //選填,緩存多長時間,單位ms,默認(rèn)10分鐘
 }),
})
//page.js
const app = getApp()
let {wxp} = app
Page({
 data: {

 },
 onLoad: function () {
  wxp.request({
   url: 'http://xxxxxx',
   cache: {
    enable: true,    //選填,是否開啟緩存,默認(rèn)false
    type: 'snapshot',   //選填,開啟緩存類型,定時(timeout)、快照(snapshot),默認(rèn)定時
    timeout: 600000,    //選填,定時緩存時間,使用優(yōu)先級,當(dāng)前配置>全局配置>默認(rèn)配置
   },
  })
   .then((res) => {
    //快照緩存時會多返回一個正式請求的promise對象,用于獲取正式請求的數(shù)據(jù)
    return res.req;
   })
   .then((res) => {
    console.log(res);

   })
 },
})

特性

  1. 緩存類型為快照緩存時,緩存的數(shù)據(jù)為持久緩存,timeout設(shè)置無效

  2. 緩存類型為快照緩存時,第一個then回調(diào)會帶上正式請求的promise對象,用于下個then回調(diào)獲取正式請求的數(shù)據(jù)

  3. 不想使用緩存時(enable=false),一樣可以用mrc實例化之后的對象正常請求,支持promise

對比

類型是否持久化是否每次都請求實時性
快照緩存
短期緩存

配合骨架屏來使用效果更佳?。?!

小程序緩存插件的示例分析

以上是“小程序緩存插件的示例分析”這篇文章的所有內(nèi)容,感謝各位的閱讀!相信大家都有了一定的了解,希望分享的內(nèi)容對大家有所幫助,如果還想學(xué)習(xí)更多知識,歡迎關(guān)注億速云行業(yè)資訊頻道!

向AI問一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進(jìn)行舉報,并提供相關(guān)證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI