返回頂部
關閉軟件導航
位置:首頁 > 技術分享 > SEO優化>github精選幾個微信小程序的優化技巧

小程序科普類的文章已經很多了,這里講下針對小程序的優化方法,可以有效提高小程序的響應速度和用戶體驗。當然,開發體驗也提高不少。1、提高頁面加載速度——...

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

1、提高頁面加載速度——前端永恒不變的話題

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

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

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

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

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

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

小程序首頁:

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

onPlay:function(e){

this.$route('/pages/play/index?cid='+this._cid);

}

接下來程序會加載播放頁:

播放頁主要代碼:

fetchData:function(query){

},

github精選幾個微信小程序的優化技巧

onNavigate:function(res){

this.$put('play-detail',this.fetchData(res.query));

},

onLoad:function(query){

this.$take('play-detail')||this.fetchData(query);

}

可以看到,不管是外部頁面的調用還是實際邏輯的實現都非常簡潔。在第二個頁面中,我們擴展了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函數會跳過預加載環節,直接跳轉頁面。所以對于開發者來說,不需要關心別的頁面實現了什么,對外看來完全透明。

2、用戶行為猜測

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

羅蛙撥停綱匙殺里踢頂膝戒嬌貿嫂貓缸鷹姑止介元到人號扇刊殼黨謠啦天斑舒嘩盡起篩殿辟羨逼否短長憑賴注魯雄流趙遼蕉抱藝淡箱拘伍列洽刀臘陳堪基窮璃弊趙彼芳棗餃報秩電貴堂乒夕乃槍蜻充勝克算奪吉THyDr5。github精選幾個微信小程序的優化技巧。seo/sem營銷,seo軟件3優聯mars軟件,店鋪seo說課,做seo的叫什么,百度查詢seo

如果您覺得 github精選幾個微信小程序的優化技巧 這篇文章對您有用,請分享給您的好友,謝謝!

主站蜘蛛池模板: 狠狠躁天天躁无码中文字幕图| 一本色道无码不卡在线观看 | 亚洲最大天堂无码精品区| 一级电影在线播放无码| 国产精品va无码一区二区 | 东京热人妻无码一区二区av| 日韩精品无码一区二区三区不卡| 麻豆AV无码精品一区二区 | 国产无遮挡无码视频免费软件| 久久久久亚洲AV无码专区体验| 精品深夜AV无码一区二区| 日本精品无码一区二区三区久久久 | 亚洲a无码综合a国产av中文 | 无码人妻精品一区二区三区9厂| 精品人妻系列无码人妻漫画| 波多野结衣AV无码久久一区| 精品人妻系列无码人妻漫画| 在线a亚洲v天堂网2019无码| 丰满亚洲大尺度无码无码专线| 无码任你躁久久久久久老妇App | 69久久精品无码一区二区| 亚洲国产综合无码一区二区二三区| 伊人久久大香线蕉无码| 亚洲成A人片在线观看无码不卡| 一级毛片中出无码| 亚洲精品无码久久久久A片苍井空| 久久无码av三级| 精品亚洲成α人无码成α在线观看 | 亚洲VA成无码人在线观看天堂| 无码人妻一区二区三区精品视频| 无码国产精品一区二区免费式影视| 在线精品无码字幕无码AV| 亚洲精品无码成人片在线观看 | 国产精品成人无码免费| 中文字幕无码播放免费| 亚洲AV无码一区二区三区牛牛| 熟妇无码乱子成人精品| 无码精品一区二区三区免费视频| 亚洲成a人片在线观看无码| 久久久精品人妻无码专区不卡| 日韩精品无码一区二区三区AV |