小程序在首次啟動前,微信會在小程序啟動前為小程序準備好通用的運行環(huán)境,如運行中的線程和一些基礎庫的初始化。在進入啟動狀態(tài)時,微信需要完成幾項工作:下載小程序代碼包、加載小程序代碼包、初始化(渲染)小程序首頁。所以,我們可以從加載、渲染兩個維度去提高應用速度:
加載
1. 控制小程序包的大小
- 勾選開發(fā)者工具中“上傳代碼時,壓縮代碼”選項
-
及時清理無用的代碼和資源文件
-
減少資源包中的圖片等資源的數(shù)量和大小
2. 采用分包加載
將用戶訪問率高的頁面放在主包里,訪問率低的頁面放在子包里,按需加載;當用戶點擊到子包頁面時,由于也會有代碼包的下載,所有會有卡頓的情況出現(xiàn),那么我們子包可以采用預加載的技術,不需要等到用戶點擊到子包頁面后再下載子包。
渲染
1. 預加載網絡請求的數(shù)據
描述現(xiàn)象:
如果小程序打開新頁面時需要通過網絡請求從接口中獲取所用數(shù)據,在請求完之前頁面都會因為沒有數(shù)據而呈現(xiàn)一片空白。
解決方案:(方案分為三種,最后一種為預加載方式)
1)先使用從緩存中取出上一次數(shù)據,等到請求結束后再使用請求得到的數(shù)據?。
2)在加載時顯示骨架屏?(骨架屏:在頁面尚未加載前展示出來的大致結構)。
3)前一個頁面預加載下一個頁面的數(shù)據,達到秒開的效果?。
預加載設計思路:
1)實現(xiàn)預加載能力的關鍵是能夠調用其他頁面的函數(shù),需要獲取其他頁面對象。但是部分還沒有加載出來,getCurrentPage 方法也獲取不到,因此需要把預加載頁面的 PageOption 給保存起來。
2)那些沒有被創(chuàng)建的頁面并沒有 setData 方法,需要模擬一個 setData 方法,把獲取到的數(shù)據暫存起來,在 onLoad階段再調用 setData 呈現(xiàn)到視圖上。
3)頁面應當可以主動被預加載,但是在沒有被預加載的時候也應該能夠正常打開。
2. 減少默認 data 的大小
頁面打開一個新頁面時微信會深拷貝一個 Page 對象,因此,應該盡量減少默認 data 的大小,以及減少對象內的自定義屬性。文章來源:http://www.zghlxwxcb.cn/news/detail-498673.html
雖然小程序足夠小巧,但啟動速度還是有 2-3s,無法達到秒開的效果。單個頁面的初始化只需要 1-2ms,也許大部分時間消耗在了微信跟服務器端通信的過程中。文章來源地址http://www.zghlxwxcb.cn/news/detail-498673.html
到了這里,關于微信小程序篇3 談談如何提高小程序的應用速度的文章就介紹完了。如果您還想了解更多內容,請在右上角搜索TOY模板網以前的文章或繼續(xù)瀏覽下面的相關文章,希望大家以后多多支持TOY模板網!