小程序加載快慢的問題

關於小程序的加載快慢這但是一大學問,自古以來性能都是重點,因此下面我淺談一下本身遇到的問題和解決方法吧前端

 

首先,先從網絡請求network提及算法

這裏基本不關前端的事情,可是這也是優化小程序的一大重點,後端響應咱們請求數據的速度影響了整個頁面的速度,因此,把它拿到第一位小程序

 

 

 請求超過300ms就已經算是慢了,因此會影響整體速度。後端

建議:叫後端優化接口,加快響應速度。api

還有,儘可能減小無謂的請求,,將數據合併到一個接口上,這樣能夠方便操做,又能夠節約資源,(前提不被後端責罵)緩存

第二:圖片服務器

圖片的話,對越用戶上傳的圖片的大小驗證一下,大於500K的拒絕就行了,儘可能通過壓縮在上傳服務器,若是文中含有大量的圖片的,儘可能使用base64,轉換一下,能夠減小點資源,網絡

多圖片的狀況況下,最好作一個懶加載技術。。。把一些體積較大的圖片資源改成使用線上資源。具體作法是將素材先上傳到 cdn,而後在小程序中直接使用線上圖片地址。性能

不懂得如何壓縮大小的能夠看看這個https://blog.csdn.net/Young_Gao/article/details/88183442現成的優化

第三:控制小程序包 的大小 減少資源包體積

精簡第三方依賴  儘可能少用第三方包,第三方的方有的會引用比較大的模塊,儘可能節約吧,減小沒必要要的代碼...包括一些註釋掉的,它好像也會打包進去,因此最好就刪除吧,

第四:關於調用第三方接口的問題

調用了第三方的接口速度會很慢——例如調用了騰訊的獲取定位,有時候須要1秒才能響應,若是公司內部有本身的接口和算法,仍是調用本身的吧,哪怕是騰訊的api有時候他響應的速度也會超過300ms,儘可能少用

第五:關於setData

5.1. 頻繁的去 setData

在咱們分析過的一些案例裏,部分小程序會很是頻繁(毫秒級)的去setData,其致使了兩個後果:

  • Android 下用戶在滑動時會感受到卡頓,操做反饋延遲嚴重,由於 JS 線程一直在編譯執行渲染,未能及時將用戶操做事件傳遞到邏輯層,邏輯層亦沒法及時將操做處理結果及時傳遞到視圖層;
  • 渲染有出現延時,因爲 WebView 的 JS 線程一直處於忙碌狀態,邏輯層到頁面層的通訊耗時上升,視圖層收到的數據消息時距離發出時間已通過去了幾百毫秒,渲染的結果並不實時;

5.2. 每次 setData 都傳遞大量新數據

setData的底層實現可知,咱們的數據傳輸實際是一次 evaluateJavascript 腳本過程,當數據量過大時會增長腳本的編譯執行時間,佔用 WebView JS 線程,

5.3. 後臺態頁面進行 setData

當頁面進入後臺態(用戶不可見),不該該繼續去進行setData,後臺態頁面的渲染用戶是沒法感覺的,另外後臺態頁面去setData也會搶佔前臺頁面的執行。

第六:變量

每一個頁面都有生命週期的銷燬階段,在這階段裏面講存在data裏面的變量所有釋放(不會返回這頁面的時候能夠這樣作),你二次進入的時候會比上次快上一點,可是不會很明顯,若是變量特別龐大的時候,這個時候就會顯得特別明顯,我作的都是二三十個變量。。。這個能夠忽略

第七:緩存

相信每一個頁面多多少少都會有複用的東西,若是有複用的變量,直接存到本地裏面,而後等小程序整個關閉以後去本地儲存刪掉,

若是首頁加載的東西不少的,能夠把整個頁面緩存下來,而後,再次進這頁面的時候渲染緩存的,等接口數據都請求到了,在進行靜默渲染,

 

但願我講的額能幫到你們,感謝你的觀看

相關文章
相關標籤/搜索