關於小程序的加載快慢這但是一大學問,自古以來性能都是重點,因此下面我淺談一下本身遇到的問題和解決方法吧前端
首先,先從網絡請求network提及:算法
這裏基本不關前端的事情,可是這也是優化小程序的一大重點,後端響應咱們請求數據的速度影響了整個頁面的速度,因此,把它拿到第一位小程序
請求超過300ms就已經算是慢了,因此會影響整體速度。後端
建議:叫後端優化接口,加快響應速度。api
還有,儘可能減小無謂的請求,,將數據合併到一個接口上,這樣能夠方便操做,又能夠節約資源,(前提不被後端責罵)緩存
第二:圖片服務器
圖片的話,對越用戶上傳的圖片的大小驗證一下,大於500K的拒絕就行了,儘可能通過壓縮在上傳服務器,若是文中含有大量的圖片的,儘可能使用base64,轉換一下,能夠減小點資源,網絡
多圖片的狀況況下,最好作一個懶加載技術。。。把一些體積較大的圖片資源改成使用線上資源。具體作法是將素材先上傳到 cdn,而後在小程序中直接使用線上圖片地址。性能
不懂得如何壓縮大小的能夠看看這個https://blog.csdn.net/Young_Gao/article/details/88183442現成的優化
第三:控制小程序包 的大小 減少資源包體積
精簡第三方依賴 儘可能少用第三方包,第三方的方有的會引用比較大的模塊,儘可能節約吧,減小沒必要要的代碼...包括一些註釋掉的,它好像也會打包進去,因此最好就刪除吧,
第四:關於調用第三方接口的問題
調用了第三方的接口速度會很慢——例如調用了騰訊的獲取定位,有時候須要1秒才能響應,若是公司內部有本身的接口和算法,仍是調用本身的吧,哪怕是騰訊的api有時候他響應的速度也會超過300ms,儘可能少用
第五:關於setData
5.1. 頻繁的去 setData
在咱們分析過的一些案例裏,部分小程序會很是頻繁(毫秒級)的去setData
,其致使了兩個後果:
5.2. 每次 setData 都傳遞大量新數據
由setData
的底層實現可知,咱們的數據傳輸實際是一次 evaluateJavascript
腳本過程,當數據量過大時會增長腳本的編譯執行時間,佔用 WebView JS 線程,
5.3. 後臺態頁面進行 setData
當頁面進入後臺態(用戶不可見),不該該繼續去進行setData
,後臺態頁面的渲染用戶是沒法感覺的,另外後臺態頁面去setData
也會搶佔前臺頁面的執行。
第六:變量
每一個頁面都有生命週期的銷燬階段,在這階段裏面講存在data裏面的變量所有釋放(不會返回這頁面的時候能夠這樣作),你二次進入的時候會比上次快上一點,可是不會很明顯,若是變量特別龐大的時候,這個時候就會顯得特別明顯,我作的都是二三十個變量。。。這個能夠忽略
第七:緩存
相信每一個頁面多多少少都會有複用的東西,若是有複用的變量,直接存到本地裏面,而後等小程序整個關閉以後去本地儲存刪掉,
若是首頁加載的東西不少的,能夠把整個頁面緩存下來,而後,再次進這頁面的時候渲染緩存的,等接口數據都請求到了,在進行靜默渲染,
但願我講的額能幫到你們,感謝你的觀看