摘要:背景是小程序提供的,用于發(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í)性 |
---|---|---|---|
快照緩存 | 是 | 是 | 高 |
短期緩存 | 否 | 否 | 低 |
配合骨架屏來使用效果更佳?。?!
緩存插件的使用可以有效的提升頁面打開速度,并且在頻繁的網(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
摘要:普通請求創(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 ...
閱讀 2677·2021-11-18 10:02
閱讀 3447·2021-09-22 15:50
閱讀 2370·2021-09-06 15:02
閱讀 3591·2019-08-29 16:34
閱讀 1754·2019-08-29 13:49
閱讀 1285·2019-08-29 13:29
閱讀 3650·2019-08-28 18:08
閱讀 2971·2019-08-26 11:52