提升 1 倍運(yùn)行效率!有了這些技巧,你的小程序也能快如閃電

微信小程序的一大優(yōu)勢(shì)體現(xiàn)在「小」上面,小而輕的微信小程序,能給用戶帶來非常良好的體驗(yàn)。

但是要想將小程序輕快的特點(diǎn)發(fā)揮到極致,開發(fā)者還是要多下一點(diǎn)功夫。

1. 壓縮小程序包體積

從點(diǎn)擊打開一個(gè)微信小程序,到第一個(gè)頁(yè)面加載完,通常情況下需要 2 到 3 秒的時(shí)間。

這 2 到 3 秒的時(shí)間里,小程序完成了數(shù)據(jù)包的加載與同服務(wù)器間的通訊。自然地,在加載數(shù)據(jù)包時(shí),數(shù)據(jù)包的大小與加載時(shí)間成正相關(guān)。

微信小程為了提高加載速度,刻意將數(shù)據(jù)包的大小限制到了 2 MB(最早為 1 MB)。我們要做的是在 2 MB 的基礎(chǔ)下,進(jìn)一步去減少數(shù)據(jù)包的大小。

具體來說,不要在數(shù)據(jù)包里放置大的圖片及其他文件,也不用過多的圖片來當(dāng) UI,還可以縮減代碼的行數(shù)等。通過這些方法,最高可減少約 1 秒的加載時(shí)間哦!

2. 大圖片和長(zhǎng)圖片

在微信小程序的頁(yè)面里不要放置大的圖片。

在小程序里,進(jìn)行頁(yè)面加載或跳轉(zhuǎn)時(shí),通常頁(yè)面已經(jīng)出現(xiàn)或者跳轉(zhuǎn)完成,但大體積圖片往往還正在加載。這樣會(huì)嚴(yán)重影響用戶體驗(yàn)。

如果小程序以提供高清大圖為主題的話,像上述的「必應(yīng)觀世界」。我們可以選擇在頁(yè)面里顯示適當(dāng)壓縮的圖片,再在 wx.previewImage() 中顯示原圖即可。

wx.previewImage({
  current: '', // 當(dāng)前顯示圖片的http鏈接
  urls: [] // 需要預(yù)覽的圖片http鏈接列表
})

在微信小程序里放置長(zhǎng)圖片,會(huì)出現(xiàn)在頁(yè)面插入大圖片類似的情況。

不同的是,長(zhǎng)圖片的 mode 通常只選擇 aspectFit,然后在小程序加載時(shí),就會(huì)出現(xiàn)以下結(jié)果:這個(gè)圖片會(huì)以被壓扁了的形式先出現(xiàn),之后再按正常的形式出現(xiàn)。(不知道的還以為亂碼了呢?。?/p>

對(duì)于這類圖片,建議將其截短,分段在小程序中進(jìn)行展示。

3. 不要濫用

setData

setData 是微信小程序里運(yùn)用得非常頻繁的一個(gè)接口,在數(shù)據(jù)綁定后對(duì)數(shù)據(jù)進(jìn)行賦值是常用方法。語(yǔ)法如下:

var that = this
  that.setData({
  imageUrl: "http://XX/XX/X.jpg",
})

微信小程序的視圖層和邏輯層相互獨(dú)立,setData 是跨層實(shí)現(xiàn)數(shù)據(jù)的傳遞,中間過程復(fù)雜且耗時(shí)。

使用一些 setData 不嚴(yán)謹(jǐn)?shù)男〕绦颍?dāng)執(zhí)行下拉刷新或滑動(dòng)頁(yè)面時(shí),你會(huì)感覺到明顯的卡頓感。這是由于此時(shí)小程序在頻繁 setData,程序無(wú)法將用戶操作實(shí)時(shí)傳輸?shù)竭壿媽樱壿媽拥慕Y(jié)果就更加無(wú)法傳輸給視圖層了。

但這并非代表只要使用 setData 就會(huì)造成卡頓、要放棄它,我的建議是:合理運(yùn)用事件來觸發(fā) setData,切莫利用時(shí)鐘頻繁賦值,且不要一次性 setData 太多值,容易造成卡頓。

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • 因新工作主要負(fù)責(zé)微信小程序這一塊,最近的重心就移到這一塊,該博客是對(duì)微信小程序整體的整理歸納以及標(biāo)明一些細(xì)節(jié)點(diǎn),初...
    majun00閱讀 7,660評(píng)論 0 9
  • 文/清越 一 我不認(rèn)識(shí)霍金,至今沒看過他的作品,我也不喜歡學(xué)物理。我和霍金距離最近的時(shí)候應(yīng)該就是——高中學(xué)物理被虐...
    清越ohyeah閱讀 642評(píng)論 2 2
  • 下午回到家,看兒子一臉不高興,爸爸問作業(yè)快寫完了嗎?今晚和你們一起出去吃飯。支支吾吾不清楚他在說什么,不過我已...
    曹政媽媽閱讀 321評(píng)論 0 2
  • 累一天,靜下心來想寫點(diǎn)東西,一時(shí)沒有主題,可能這才是一個(gè)寫文章人的硬傷。我看到很多牛人可以從日常的生活或是工作中找...
    慧眼識(shí)魚閱讀 604評(píng)論 2 4

友情鏈接更多精彩內(nèi)容