一级片大奶子_色又黄又爽18禁免费视频_热久久久久久久_久久久精品一区二区_日韩av不卡在线播放_精品国内自产拍在线观看视频

注冊登錄

微信小程序應用打開很慢怎么辦?附解決方案

2020-09-28
導讀:2017年6月14日,微信小程序應用打開已經是當下最熱門的話題,下面將從多方面來談談微信小程序應用打開很慢怎么辦?附解決方案相關的內容。...

微信小程序應用打開已經是當下最熱門的話題,下面將從多方面來談談微信小程序應用打開很慢怎么辦?附解決方案相關的內容。

小程序科普類的文章已經很多了,今天這里講的是針對小程序的優化方法,可以有效提高小程序的響應速度和用戶體驗。當然,開發體驗也提高不少。

一、提高頁面加載速度

小程序這個環境下,怎樣提高頁面加載速度呢? 這個問題很大,我把問題具體一下,如何縮短從用戶點擊某個鏈接,到打開新頁面的這段時間? 這里拋一個核心關鍵點:

從頁面響應用戶點擊行為,開始跳轉,到新頁面onload事件觸發,存在一個延遲,這個延遲大概在100-300ms之間(安卓響應比ios慢些)。

這個延遲說短不短,我們可以利用這段時間,預先發起新頁面所需要的網絡請求。這樣一來,就節省了100-300ms(或者一個網絡請求的時間)。

知道有這個gap后,代碼如何實現呢?

說白了,就是實現一個在A頁面預加載B頁面數據的功能。但而這種跨頁面的調用,很容易把邏輯搞復雜,將不同頁面的邏輯耦合在一起。所以,我們希望將預加載的邏輯隱藏于無形中,不增加任何的頁面間耦合,以及開發復雜度。

下面以騰訊視頻小程序為例,講解下技術實現。

小程序首頁:當用戶點擊海報圖后,會執行以下代碼(就一行):

微信小程序應用打開很慢怎么辦?附解決方案

接下來程序會加載播放頁:播放頁主要代碼:

微信小程序應用打開很慢怎么辦?附解決方案

可以看到,不管是外部頁面的調用還是實際邏輯的實現都非常簡潔。在第二個頁面中,我們擴展了Page的生命周期函數,增加了onNavigate方法。該方法在頁面即將被創建但還沒開始創建的時候執行。

老司機也許會發現這里有點蹊蹺。在首頁點擊的時候,播放頁根本就沒有創建,對象都不存在,怎么訪問到里面的方法呢?

這里就要說下微信的頁面機制。

微信小程序應用打開很慢怎么辦?附解決方案

小程序啟動時,會把所有調用Page()方法的object存在一個隊列里(如下圖)。每次頁面訪問的時候,微信會重新創建一個新的對象實例(實際上就是深拷貝)。

也就是說,在A頁面在執行點擊響應事件的時候,B頁面的實例還沒創建,這時候調用的onNavigate方法,實際上是Page對象的原型(小程序啟動時候創建的那個)。

而接下來馬上要被創建的B頁面,又是另外一個object。所以,在onNavigate和onLoad方法中,this指針指的不是同一個對象,不能把臨時數據存儲在當前object身上。因此我們封裝了一對全局的緩存方法,$put()和$take()。

微信小程序應用打開很慢怎么辦?附解決方案

為了通用性,Page上用到的公共的方法,比如$route、$put、$take都定義在了一個Page的基類里面。基類還同時保存了所有頁面的list,這樣就可以做到根據頁面名調用具體頁面的onNavigate方法。 當然,并不是每個頁面都需要實現onNavigate方法,對于沒有定義onNavigate方法的,$route函數會跳過預加載環節,直接跳轉頁面。所以對于開發者來說,不需要關心別的頁面實現了什么,對外看來完全透明。

二、用戶行為預測

在上面的例子中,我們實現了用戶主動點擊頁面,提前加載下一頁面數據的方法。而在某些場景下,用戶的行為可以預測,我們可以在用戶還沒點擊的時候就預加載下個頁面的數據。讓下個頁面秒開,進一步提升體驗的流暢性。

繼續以騰訊視頻小程序為例,主界面分為3個頁卡(大部分小程序都會這么設計),通過簡單的數據分析,發現進入首頁的用戶有50%會訪問第二個頁卡。所以預加載第二個頁卡的數據可以很大程度提高用戶下個點擊頁面的打開速度。

同樣,先看看代碼實現。 首頁預加載頻道頁的姿勢:

微信小程序應用打開很慢怎么辦?附解決方案

頻道頁的實現方法:

微信小程序應用打開很慢怎么辦?附解決方案

跟第一個例子類似,這里定義了一個$preLoad()方法,同時給Page擴展了一個onPreload事件。頁面調用$preLoad()后,基類會自動找到該頁面對應的onPreload函數,通知頁面執行預加載操作。 跟第一個例子不同,這里預加載的數據會保存在storage內,因為用戶不一定會馬上訪問頁面,而把數據存在全局變量會增加小程序占用的內存。微信會毫不猶豫的把內存占用過大的小程序給殺掉。

也許對于大部分有app開發經驗的同學來說,更普遍的做法是先讓頁面展示上次緩存的數據,再實時拉取新數據,然后刷新頁面。這個方法在小程序上也許體驗并不太好,原因是小程序的性能以及頁面渲染速度都不如原生app。將一個大的data傳輸給UI層,是一個很重的操作。因此不建議采用這種方法。

三、減少默認data的大小

剛剛說到,頁面打開一個新頁面時微信會深拷貝一個page對象,因此,應該盡量減少默認data的大小,以及減少對象內的自定義屬性。有圖有真相:

微信小程序應用打開很慢怎么辦?附解決方案

以一個100個屬性的data對象為測試用例,在iphone6上,頁面的創建時間會因此增加150ms。

四、組件化方案

微信沒有提供小程序的組件化方案(相信一定在實現中)。但開談不說組件化,寫再多代碼也枉然。這里演示一個簡單的組件化實現。

以騰訊視頻播放頁為例,頁面定義如下:

微信小程序應用打開很慢怎么辦?附解決方案

其中,P()函數是自定義的基類。這是一個非常有用的東西,可以把所有通用的邏輯都寫在基類里面,包括pv統計,來源統計,擴展生命周期函數,實現組件化等。

函數第一個參數是頁面名稱,作為頁面的key。第二個是page對象,其中擴展了一個comps數組,里面就是所有要加載的組件。

以播放器組件/comps/player/index.js為例:

微信小程序應用打開很慢怎么辦?附解決方案

組件的定義跟一個普通Page對象一模一樣,有data屬性,onLoad、onShow等事件,也有頁面響應的回調方法。wxml模板里定義的事件和js事件一一對應。

基類做的事情,就是把這些組件對象的屬性和方法復制到Page對象上(淺拷貝)。其中data屬性會merge到一起。而微信預定義的生命周期函數(包括自己擴展的),則封裝成隊列按序執行。比如當系統調用onLoad方法時,實際上是執行了所有組件的onLoad方法,最后再執行Page的onLoad。

以上是代碼部分,至于wxml模板和wxss部分,就要手工import過去了。

wxml:

微信小程序應用打開很慢怎么辦?附解決方案

wxss:

微信小程序應用打開很慢怎么辦?附解決方案

五、其他

雖然小程序已經足夠小巧,但啟動速度還是有那么2-3秒,無法做到秒開。樓主嘗試對小程序的啟動時間做優化,但沒有找到多少有價值的優化點。單個頁面的初始化只需要1-2ms。也許大部分時間消耗在了微信跟服務器端通信的過程中。

所幸,騰訊提供了一個可以自主進行服務器性能測試的環境,用戶只需要填寫域名和簡單的幾個參數就可以獲知自己的服務器性能情況,目前在騰訊WeTest平臺可以免費使用。

 


重磅推薦:小程序開店目錄

第一部分:小商店是什么

第二部分:如何開通一個小商店

第三部分:如何登錄小商店

第四部分:開店任務常見問題

第五部分:小商店可以賣什么

第六部分:HiShop小程序特色功能

第七部分:小程序直播

第八部分:小程序收貨/物流

第九部分:小程序怎么結算

第十部分:小程序客服

第十一部分:電商創業

第十二部分:小程序游戲開發

電話咨詢 微信咨詢 預約演示 0元開店
主站蜘蛛池模板: 亚洲高清炮|99国精产品灬源码1688钻|人与拘一级=a毛片|精品无人区麻豆乱码久久久|国产精品色视频xxx|国产日产成人免费观看软件 | 国外精品视频在线观看免费|永夜星河免费观看|成人精品=av一区二区三区|老湿机香蕉久久久久久|日本=a级无毛|热久久一区 | 最新久久久|精品成人自拍视频|日本精品一区在线|四川一级毛片在线播放|免费无码又爽又刺激激情频91|爱爱一级片 | 国产免费一区二区三区在线能观看|久久综合9988久久爱|四虎影院久久|国产精品三区在线观看|日本一上一下爱爱免费|麻豆传媒视频 | 岛国精品在线观看|欧美丰满高潮xxxx喷水动漫|国内=av网|亚洲精品久久久久久久久|亚洲精品h|亚洲国产视频一区二区 | 国产高清精品亚洲а∨|一本久道久久综合狠狠爱亚洲精品|久久国产福利|久久久久www|无码人妻精品一区二区三区99不卡|亚V=a芒果乱码一二三四区别 | 最近中文字幕在线mv视频在线|#NAME?|色惰网站|草逼一区|免费精品国产的网站免费观看|播放日韩一级黄色片 | XXXX日本少妇做受|极品少妇videofreehd|日本无线免费视频|91免费视频|97久久精品人人做人人爽|亚洲一区二区三区四区在线播放 | 免费无遮挡无码视频网站|欧美人与ZOXXXX视频|色香婷婷综合激情网|亚洲综合久久无码色噜噜|欧美xxxx黑人又粗又长密月|国产精品九九久久久久久久 | 久久福利精品|亚洲日韩精品=aV无码麻豆|粗大挺进尤物人妻中文字幕|成人不卡一区二区|九九爱爱视频|#NAME? | 毛片免费全部播放无码私人|夜夜爽狠狠澡97欧美精品|日韩中文一区二区三区|欧美孕交videosfree黑人巨大|丰满少妇女人=a毛片视频|国产SUV精品一区二区 | 麻豆精品一区二区三区视频|99精美视频|久久精品久久精品中文字幕|BGMBGMBGM欧美老妇|插插久久|男女XX00上下抽搐动态图 | 成全高清视频免费观看|亚欧在线观看视频|天天躁日日躁狠狠躁欧美老妇|性感一级片|日韩一区免费观看|欧美日韩在线免费观看 | 精品久久久蜜桃|天堂亚洲|久久精品女|蜜臀久久精品久久久更新时间|日韩精品一区二区在线播放|九九视频免费在线观看 | 一个人看www在线高清免费看|国产超碰人人|中文字幕在线观看精品|公喝错春药让我高潮|亚洲=a一区二区|幼射HD交中国妇 | 77777五月色婷婷丁香视频|亚洲精品国产偷五月丁香小说|国产一级黄色大片|亚洲成色777777在线观看影院|四虎成人网|四虎院影亚洲永久 | #NAME?|国产欧美精品久久久|欧产日产国产水蜜桃|亚色国产|国产=aV无码专区亚洲=aV毛片搜|久操久操 | 成人=av一区二区三区在线观看|欧美日韩中文字幕一区二区三区|#NAME?|青青草视频网|日韩=av在线一区二区三区|老司机在线精品视频播放 | 日韩亚洲欧美中文字幕|国产精品久久久久久亚洲调教|5060网永久免费=a级毛片|人妻少妇久久久久久97人妻|国产成人无码=a区视频在线观看|欧美理论视频 | 日本久久99成人网站|99视频在线免费看|亚洲一区成人在线观看|青草福利在线|中文字幕无线码中文字幕免费|亚洲视频h | 96精品国产|国产图区|亚洲最大=aV网站在线观看|精品一区二区三区影院|久久精品国产99国产|1024免费看 | 高清中文字幕在线=a片|亚洲=aV日韩综合一区久热|品色堂永远的免费论坛|国产精品久久精品久久|国产视频中文字幕|亚洲精品国产综合 | 成人国产精品免费视频|免费视频97|成年人深夜福利|国产精品亚洲一区二区三区在线观看|亚洲性久久9久久爽|超碰超碰97 | 欧美做爰爽爽爽爽爽爽|国内揄拍国内精品|天天澡天天摸天天添视频|84c=aocom最新网站|69堂在线观看|天天澡天天狠天天天做 | 强奷乱码欧妇女中文字幕熟女|中国女人FREE性HD|国产精品一码二码三码在线|少妇性l交大片免费快色|久热=av在线|黑人巨大人精品欧美三区 | 精品人妻无码一区二区三区不卡|性欧美视频在线|99九色|99久久精品美女高潮喷水|国产午夜福利在线看|国产免费黄网 | 国产=a三级三级三级看三级|不卡中文|国产免费午夜福利757|h在线视频|熟女人妻=aV完整一区二区三区|J=aP=aN白嫩丰满人妻VIDEOS | 日韩国产成人精品视频人|中国老太毛茸茸xxxxhd|性感美女一级片|男同性恋在线观看|免费视频亚洲|91c=aoporn视频 | 在线播放成人网站|国产真实younv在线|久久久久国色=av免费看|国产第一页线路1|国产高清免费=av在线|国产一区二区成人h动漫精品 | 天天操人人插|欧日韩在线|色一区二区三区四区|国产一在线观看|亚洲精品福利片|#NAME? | 91久久香蕉国产熟女线看|人成精品视频三区二区一区|99久久精品国产91久久久|婷婷影院91xxxss|26UUU另类亚洲欧美日本|69p=ao强力打造免费高清在线 | 国产精品网红尤物福利在线观看|欧美经典一区二区|辽宁老熟女高潮狂叫视频|日日草日日干|成人免费观看毛片|久久激情免费视频 | #NAME?|欧美暖暖视频|91国内在线|毛多水多www偷窥小便|人妻无码人妻有码中文字幕|少妇人妻精品一区二区三区 | 成年人在线观看视频网站|亚洲影视久久|亚洲成在人网站无码天堂|国产色91在线|国产精品无人区一区二区三区|免费看=a在线观看 | 91在线国产观看|各种高潮VIDEOS|亚洲一区二区三区精品视频|中文字幕天堂在线|高清国产一区|欧美浓毛大泬视频 | 激情婷婷开心五月综合|国产区免费视频|欧美精品一区二区三区免费播放|亚洲一级片免费看|国产精品边做奶水狂喷无码|久久8精品 | 欧美一级特黄=a=a=a=a=a=a=a色戒|精品国产日韩欧美|免费在线国产|天天操人|国产高潮在线观看视频|末成年=av女网站 | АⅤ天堂中文在线网|人人澡人人澡人人看欧美|高H喷水荡肉爽文NP肉色学校|日韩一二三区不卡在线视频|欧美在线观看www|中文字幕一区二区三区5566 | 亚洲国产精品v=a在线观看麻豆|成人羞羞无遮挡免费网站|久久人人看|久久综合网=av|一区二区三区久久|精品视频在线视频 | 二区视频在线|久久99精品久久久野外观看|国产欧美日韩一区二区三区在线观看|久久国产色=av免费看|樱花草在线播放免费中文|亚洲最新版=aV无码中文字幕 | 美女视频黄频大全视频网站|免费国产乱码一二三区|the=av免费观看网址|国产女同一区二区|亚洲无吗在线观看|国产综合精品 |