成人国产在线小视频_日韩寡妇人妻调教在线播放_色成人www永久在线观看_2018国产精品久久_亚洲欧美高清在线30p_亚洲少妇综合一区_黄色在线播放国产_亚洲另类技巧小说校园_国产主播xx日韩_a级毛片在线免费

資訊專欄INFORMATION COLUMN

【mrc】小程序緩存插件

fanux / 2699人閱讀

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

背景

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

短期緩存

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

快照緩存

類比搜索引擎的快照,針對請求響應(yīng)較慢的并且實(shí)時(shí)性又比較高的場景而言,可以使用快照緩存。
快照緩存每次請求都會先返回上一次緩存數(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";

//實(shí)例化一個(gè)全局引用
App({
    wxp: new Mrc({
        prefix: "___CACHE___",            //選填,存儲字段前綴,默認(rèn)___CACHE___
        timeout: 600000,                //選填,緩存多長時(shí)間,單位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",            //選填,開啟緩存類型,定時(shí)(timeout)、快照(snapshot),默認(rèn)定時(shí)
                timeout: 600000,             //選填,定時(shí)緩存時(shí)間,使用優(yōu)先級,當(dāng)前配置>全局配置>默認(rèn)配置
            },
        })
            .then((res) => {
                //快照緩存時(shí)會多返回一個(gè)正式請求的promise對象,用于獲取正式請求的數(shù)據(jù)
                return res.req;
            })
            .then((res) => {
                console.log(res);

            })
    },
})
特性

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

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

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

對比
類型 是否持久化 是否每次都請求 實(shí)時(shí)性
快照緩存
短期緩存
進(jìn)階

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

總結(jié)

緩存插件的使用可以有效的提升頁面打開速度,并且在頻繁的網(wǎng)絡(luò)請求中可以有效的節(jié)約服務(wù)器資源。具體的調(diào)用方式和源碼,請看 github ,最后求start

文章版權(quán)歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請注明本文地址:http://systransis.cn/yun/62011.html

相關(guān)文章

  • curl_multi實(shí)現(xiàn)并發(fā)

    摘要:普通請求創(chuàng)建多個(gè)資源并發(fā)創(chuàng)建多個(gè)資源創(chuàng)建批處理句柄增加句柄待優(yōu)化點(diǎn)在執(zhí)行而整個(gè)批處理句柄沒有全部執(zhí)行完畢時(shí),系統(tǒng)會不停地執(zhí)行函數(shù)。進(jìn)行改動的方式是應(yīng)用函數(shù)庫中的函數(shù),其函數(shù)原型如下阻塞直到批處理連接中有活動連接。 普通請求 curl_normal.php use time:0.830 s curl_multi并發(fā) curl_multi.php use time:0.259 s ...

    shusen 評論0 收藏0

發(fā)表評論

0條評論

fanux

|高級講師

TA的文章

閱讀更多
最新活動
閱讀需要支付1元查看
<