背景:
大同ssl適用于網(wǎng)站、小程序/APP、API接口等需要進(jìn)行數(shù)據(jù)傳輸應(yīng)用場景,ssl證書未來市場廣闊!成為成都創(chuàng)新互聯(lián)公司的ssl證書銷售渠道,可以享受市場價(jià)格4-6折優(yōu)惠!如果有意向歡迎電話聯(lián)系或者加微信:18982081108(備注:SSL證書合作)期待與您的合作!隨著業(yè)務(wù)的增加,我們服務(wù)器需要計(jì)算大量的用戶數(shù)據(jù),導(dǎo)致用戶跟客服反應(yīng)頁面不能正常展示。反饋給開發(fā)后,我們一看,是服務(wù)器異常的錯(cuò)誤。So,產(chǎn)品想看下我們到底有多少用戶頁面不能正常展示?
方案:
技術(shù)方案
因?yàn)闃I(yè)務(wù)龐大,所以我們不可能區(qū)在每個(gè)頁面加上重新加載的邏輯。所以初步考慮使用全局重新加載。
需要解決的問題都有哪些?
實(shí)踐的方式如下
第一個(gè)問題: 比較好解決,我們基于wx.request已經(jīng)封裝了為fetch(如果還在用wx.request的項(xiàng)目可以考慮封裝下,好處多多)?;趂etch我們可以用res.statusCode來判斷服務(wù)器是否出錯(cuò)。
第二個(gè)問題: 暫且先不說具體的跳轉(zhuǎn)方式是怎樣的,就跳轉(zhuǎn)的url這個(gè)怎么定義也需要我們來討論下。為什么這么說,因?yàn)槲覀兊募軜?gòu)涉及到了分包。分包加載意味著我們的代碼不僅僅是在pages下面,還放在了package下。
基于此,我們在跳轉(zhuǎn)的時(shí)候,url能直接寫成'../serverError/serverError'嗎?在主包下面可以正常跳轉(zhuǎn),但是在分包下,路徑是'package/serverError/serverError',這樣跳肯定不行。url應(yīng)該是根目錄下的路徑,所以'/pages/serverError/serverError'。
路徑確認(rèn)后,我們可以跳轉(zhuǎn)了。如果是wx.redirectTo(關(guān)閉當(dāng)前頁面,跳轉(zhuǎn)到應(yīng)用內(nèi)的某個(gè)頁面),想象下關(guān)閉E跳轉(zhuǎn)到R,點(diǎn)擊重新加載,再關(guān)閉R跳轉(zhuǎn)到E,這么跳轉(zhuǎn)路徑復(fù)雜,用戶體驗(yàn)不好,并且options的參數(shù)需要逐級(jí)傳遞。wx.reLaunch類似。我們用所以我們選擇wx.navigateTo。
第三個(gè)問題: 綜合問題二的解釋,跳回到E,我們用wx.navigateBack。
第四個(gè)問題: 如果從R用wx.navigateBack回到E的話,肯定會(huì)觸發(fā)E.onShow()方法。但是有些請求我們除了寫在Page.onShow()里,還有些是寫在Page.onLoad()里的,所以我們必須想辦法調(diào)起E.onLoad()。
大家對于getCurrentPages()這個(gè)方法肯定不陌生,官方定義是來獲取當(dāng)前頁面棧,我們一般用它來獲取當(dāng)前頁面路徑。其實(shí)在這個(gè)過程中,我們是能拿到當(dāng)前頁面的實(shí)例的,并且實(shí)例里面有route(頁面路徑)options(頁面?zhèn)鬟f參數(shù))data(頁面初始參數(shù))以及各種function()等等。
利用previousPageClass()我們可以拿到E的實(shí)例,也就可以拿到E.options,當(dāng)然我們也可以調(diào)E.onLoad()。
util.js // 獲取當(dāng)前路徑 function currentPagePath() { let pageData = getCurrentPages() if (pageData.length >= 1) { let len = pageData.length - 1 let data = pageData[len] return data.route } else { return '' } } // 獲取上個(gè)界面的實(shí)例 function previousPageClass() { let pageData = getCurrentPages() if (pageData.length >= 2) { let len = pageData.length - 2 let preClass = pageData[len] return preClass } else { return '' } } module.exports = { currentPagePath, previousPageClass }
當(dāng)前標(biāo)題:微信小程序如何實(shí)現(xiàn)全局重新加載-創(chuàng)新互聯(lián)
網(wǎng)頁地址:http://aaarwkj.com/article8/ccheop.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供手機(jī)網(wǎng)站建設(shè)、企業(yè)建站、云服務(wù)器、網(wǎng)站改版、建站公司、App設(shè)計(jì)
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來源: 創(chuàng)新互聯(lián)
猜你還喜歡下面的內(nèi)容