微信小程序性能優(yōu)化

????最近了解了一下微信小程序的性能優(yōu)化寞肖,搜集了一些相關的方法探孝,整理出來,和大家共享吏够。

一、控制代碼包大小

1. 開啟開發(fā)者工具中的“上傳代碼時自動壓縮”

2. 及時清理無用代碼和資源文件

3. 減少代碼包中的資源文件大小和數量

4. 將資源文件放在CDN中

5. 提取公共樣式和公共組件

6.代碼和圖片壓縮

二滩报、分包加載

1. 將小程序中不常用的頁面放在多個分包內锅知,主包只保留最常用的核心頁面。

如啟動頁和tabBar頁面脓钾,以及分包都需要用的公共資源腳本售睹。

2. 啟動時只加載主包,使用時按需下載分包可训。

3. 分包預加載——開發(fā)者預先配置頁面可能會跳轉到的分包昌妹,框架在進入頁面后根據配置進行預加載。

三握截、運行機制優(yōu)化

1. 減少立即執(zhí)行的代碼數量

2. 避免高開銷和長時間阻塞代碼

3. 頁面代碼都寫入頁面的生命周期中

4. 做好緩存策略

四飞崖、數據管理優(yōu)化

1. 首屏請求數量盡量少于5個,超過的可以做接口合并谨胞,對多次提交的數據可以做合并處理

五固歪、首屏加載優(yōu)化

1. 提前請求:異步數據請求不需要等待頁面渲染完成

2. 利用緩存:利用storage API對異步請求數據進行緩存。二次啟動時先利用緩存數據渲染頁面胯努,再進行后臺靜默更新牢裳。

3. 避免白屏:先展示頁面骨架和基礎內容。

4. 及時反饋:即時地對需要用戶等待的交互操作給出反饋叶沛,避免用戶以為小程序無響應蒲讯。如點贊,先改變按鈕樣式灰署,再發(fā)送異步請求判帮。

六、渲染性能優(yōu)化

1. 避免不當使用setData

setData是邏輯層向渲染層的通訊氓侧,這個通信不是直接給webview脊另,而是通過走了native層

在數據傳輸時导狡,邏輯層會執(zhí)行一次JSON.stringify來去除掉setData數據中不可傳輸的部分约巷,之后將數據發(fā)送給視圖層。同時旱捧,邏輯層還會將setData所設置的數據字段與data合并独郎,使開發(fā)者可以用this.data讀取到變更后的數據踩麦。

(1)使用data在方法間共享數據,data應只包含與頁面渲染相關的數據氓癌。

(2)只傳輸頁面中發(fā)生變化的數據谓谦,使用setData的特殊key實現局部更新

(3)DAU年時間愛你內頻繁調用setData

(4)對連續(xù)的setData調用進行合并

(5)后臺頁面進行setData,搶占前臺頁面的渲染資源——頁面切入后臺的setData調用贪婉,延遲到頁面重新展示時執(zhí)行

(6)頁面列表:使用懶加載+動態(tài)移除非可視區(qū)域范圍內的內容反粥。

(7)耗時較長的js做到異步

2. 避免不當使用onPsgeScroll

(1)只在必要時監(jiān)聽pageScroll事件

(2)避免在onPageScroll中執(zhí)行復雜邏輯

(3)避免在onPageScroll中頻繁調用setData

(4)避免頻繁查詢節(jié)點信息(SelectQuery),部分場景建議使用節(jié)點布局相交狀態(tài)監(jiān)聽(IntersetctionObserver)替代

3. 使用自定義組件

4. canvas渲染

(1)分層繪制到不同canvas

(2)不變的部分單獨繪制到一個canvas疲迂,動態(tài)生成的繪制到一個canvas才顿,最后合入一個canvas

5. 獲取節(jié)點位置,用intersectionObject

建議:

1. 使用真機調試

2. 開發(fā)工具在network里看不到圖片資源的加載尤蒿。要看圖片懶加載郑气,要設置微信開發(fā)工具的代理到127.0.0.1,通過charles抓包看到

3. 改造setData腰池,記錄性能優(yōu)化的提升

this._startTime = new Date().getTime();

let fn = this.setData;

this.setData = (obj = {}, handle = '') => {

????let now = new Date().getTime();

? ? // 上報渲染所需要的時間

????log(now - this._startTime)

????fn.apply(this, [obj, handle]);

};

關注公粽號【CC前端手記】尾组,更多技術干貨等你哦~

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市示弓,隨后出現的幾起案子讳侨,更是在濱河造成了極大的恐慌,老刑警劉巖奏属,帶你破解...
    沈念sama閱讀 221,576評論 6 515
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件爷耀,死亡現場離奇詭異,居然都是意外死亡拍皮,警方通過查閱死者的電腦和手機歹叮,發(fā)現死者居然都...
    沈念sama閱讀 94,515評論 3 399
  • 文/潘曉璐 我一進店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來铆帽,“玉大人咆耿,你說我怎么就攤上這事〉鳎” “怎么了萨螺?”我有些...
    開封第一講書人閱讀 168,017評論 0 360
  • 文/不壞的土叔 我叫張陵,是天一觀的道長愧驱。 經常有香客問我慰技,道長,這世上最難降的妖魔是什么组砚? 我笑而不...
    開封第一講書人閱讀 59,626評論 1 296
  • 正文 為了忘掉前任吻商,我火速辦了婚禮,結果婚禮上糟红,老公的妹妹穿的比我還像新娘艾帐。我一直安慰自己乌叶,他們只是感情好,可當我...
    茶點故事閱讀 68,625評論 6 397
  • 文/花漫 我一把揭開白布柒爸。 她就那樣靜靜地躺著准浴,像睡著了一般。 火紅的嫁衣襯著肌膚如雪捎稚。 梳的紋絲不亂的頭發(fā)上乐横,一...
    開封第一講書人閱讀 52,255評論 1 308
  • 那天,我揣著相機與錄音今野,去河邊找鬼晰奖。 笑死,一個胖子當著我的面吹牛腥泥,可吹牛的內容都是我干的匾南。 我是一名探鬼主播,決...
    沈念sama閱讀 40,825評論 3 421
  • 文/蒼蘭香墨 我猛地睜開眼蛔外,長吁一口氣:“原來是場噩夢啊……” “哼蛆楞!你這毒婦竟也來了?” 一聲冷哼從身側響起夹厌,我...
    開封第一講書人閱讀 39,729評論 0 276
  • 序言:老撾萬榮一對情侶失蹤豹爹,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后矛纹,有當地人在樹林里發(fā)現了一具尸體臂聋,經...
    沈念sama閱讀 46,271評論 1 320
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內容為張勛視角 年9月15日...
    茶點故事閱讀 38,363評論 3 340
  • 正文 我和宋清朗相戀三年或南,在試婚紗的時候發(fā)現自己被綠了孩等。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 40,498評論 1 352
  • 序言:一個原本活蹦亂跳的男人離奇死亡采够,死狀恐怖肄方,靈堂內的尸體忽然破棺而出,到底是詐尸還是另有隱情蹬癌,我是刑警寧澤权她,帶...
    沈念sama閱讀 36,183評論 5 350
  • 正文 年R本政府宣布,位于F島的核電站逝薪,受9級特大地震影響隅要,放射性物質發(fā)生泄漏。R本人自食惡果不足惜董济,卻給世界環(huán)境...
    茶點故事閱讀 41,867評論 3 333
  • 文/蒙蒙 一步清、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧感局,春花似錦尼啡、人聲如沸暂衡。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,338評論 0 24
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至撑毛,卻和暖如春书聚,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背藻雌。 一陣腳步聲響...
    開封第一講書人閱讀 33,458評論 1 272
  • 我被黑心中介騙來泰國打工雌续, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人胯杭。 一個月前我還...
    沈念sama閱讀 48,906評論 3 376
  • 正文 我出身青樓驯杜,卻偏偏與公主長得像,于是被迫代替她去往敵國和親做个。 傳聞我的和親對象是個殘疾皇子鸽心,可洞房花燭夜當晚...
    茶點故事閱讀 45,507評論 2 359

推薦閱讀更多精彩內容

  • 前言 2018年7月份微信公開課上的小程序專場中“小程序性能優(yōu)化”模塊中提到了小程序性能優(yōu)化方面的知識,其中從啟動...
    Gopal閱讀 12,824評論 0 8
  • 做性能優(yōu)化前從微信提供的文檔內尋找到的相關建議:1居暖、https://developers.weixin.qq.co...
    砂壺閱讀 249評論 0 1
  • 1.小程序起步 (1)點擊https://mp.weixin.qq.com/wxopen/waregister?a...
    GXW_Lyon閱讀 3,373評論 0 0
  • 填 詞 王武雄 譜曲 蔡政勛 編曲 袁少文 我把夢撕了一頁 不懂明天該怎么寫 冷冷的街冷冷的燈照著誰 一場雨濕了...
    RainyCai閱讀 354評論 0 1
  • 一直以來很排斥自由書寫太闺,不知道自由書寫要寫什麼糯景,與其說排斥不如說恐懼,是害怕自己坐在那裡一句話也下不出來吧省骂,宋老師...
    靜心_安心閱讀 274評論 0 0