微信小程序的一大優勢體現在「小」上面,小而輕的微信小程序,能給用戶帶來非常良好的體驗。 但是要想將小程序輕快的特點發揮到極致,開發者還是要多下一點功夫。。 1. 壓縮小程序包體積 從點擊打開一個微信小程序,到第一個頁面加載完,通常情況下需要 2 到 3 秒的時間。 這 2 到 3 秒的時間里,小程序完成了數據包的加載與同服務器間的通訊。自然地,在加載數據包時,數據包的大小與加載時間成正相關。 微信小程為了提高加載速度,刻意將數據包的大小限制到了 2 MB(最早為 1 MB)。我們要做的是在 2 MB 的基礎下,進一步去減少數據包的大小。 具體來說,不要在數據包里放置大的圖片及其他文件,也不用過多的圖片來當 UI,還可以縮減代碼的行數等。通過這些方法,最高可減少約 1 秒的加載時間哦! 2. 大圖片和長圖片 在微信小程序的頁面里不要放置大的圖片。 在小程序里,進行頁面加載或跳轉時,通常頁面已經出現或者跳轉完成,但大體積圖片往往還正在加載。這樣會嚴重影響用戶體驗。
如果小程序以提供高清大圖為主題的話,像上述的「必應觀世界」。我們可以選擇在頁面里顯示適當壓縮的圖片,再在 wx.previewImage() 中顯示原圖即可。 wx.previewImage({ current: '', // 當前顯示圖片的http鏈接 urls: [] // 需要預覽的圖片http鏈接列表 }) 在微信小程序里放置長圖片,會出現在頁面插入大圖片類似的情況。 不同的是,長圖片的 mode 通常只選擇 aspectFit,然后在小程序加載時,就會出現以下結果:這個圖片會以被壓扁了的形式先出現,之后再按正常的形式出現。(不知道的還以為亂碼了呢!) 對于這類圖片,建議將其截短,分段在小程序中進行展示。
3. 不要濫用 setData setData 是微信小程序里運用得非常頻繁的一個接口,在數據綁定后對數據進行賦值是常用方法。語法如下: var that = this that.setData({ imageUrl: "http://XX/XX/X.jpg", }) 微信小程序的視圖層和邏輯層相互獨立,setData 是跨層實現數據的傳遞,中間過程復雜且耗時。 使用一些 setData 不嚴謹的小程序,當執行下拉刷新或滑動頁面時,你會感覺到明顯的卡頓感。這是由于此時小程序在頻繁 setData,程序無法將用戶操作實時傳輸到邏輯層,邏輯層的結果就更加無法傳輸給視圖層了。 但這并非代表只要使用 setData 就會造成卡頓、要放棄它,我的建議是:合理運用事件來觸發 setData,切莫利用時鐘頻繁賦值,且不要一次性 setData 太多值,容易造成卡頓。 |