基于微信小程序的媒體列表優(yōu)化

前言

開發(fā)web應(yīng)用的時候,總會觸及到多媒體列表的加載。我們可以通過多種手段來對進(jìn)行優(yōu)化,這將會極大程度提高了用戶的體驗甜害。

實現(xiàn)方案

設(shè)置骨架屏

網(wǎng)絡(luò)資源的加載是非常昂貴的,在資源加載時球昨,越來越多的APP采用了“骨架屏”的方式去提升用戶體驗尔店。

aaa

實現(xiàn)思路:圖片未加載完成的時候顯示骨架屏,圖片加載成功之后顯示關(guān)閉骨架屏的顯示主慰。

1.骨架屏組件:vant

2.監(jiān)聽image組件的bindload事件

3.bindload事件執(zhí)行成功后嚣州,設(shè)置load為true,關(guān)閉骨架屏:

---js---
imageLoad(e) {
    const {
      x,
      y
    } = e.currentTarget.dataset;
    //設(shè)置load為true共螺,關(guān)閉骨架屏
    const temp = "subEvent[" + x + "].sub_event_files[" + y + "].load";
    this.setData({
      [temp]: true
    })
  },
---wxml---
<van-skeleton row="1" class="class_{{sub_events_index}}_{{sub_event_files_index}}"
  style="width:100%;height: 100%;"
                    loading="{{!sub_event_files_item.visibility&&!sub_event_files_item.load}}"
                    wx:if="{{sub_event_files_item.type==='video'}}">

圖片懶加載

思路:判斷當(dāng)前圖片是否進(jìn)入可視區(qū)域该肴,進(jìn)入則直接設(shè)置url或者展示圖片(作者采用進(jìn)入可視區(qū)域就展示圖片的方式,因為作者采用的是骨架屏的方式藐不,設(shè)置了寬高匀哄;<strong>如果不是這種方式則需要一定的占位符秦效,不然會導(dǎo)致一開始所有的資源都在可視區(qū)導(dǎo)致所有的資源一并加載</strong>)


image

(留意右邊網(wǎng)絡(luò)請求)

核心API:IntersectionObserver IntersectionObserver.relativeToViewport(Object margins),判斷是否處于可視區(qū)域

Page({
  onLoad: function(){
    wx.createIntersectionObserver().relativeToViewport({bottom: 100}).observe('.target-class', (res) => {
      res.intersectionRatio // 相交區(qū)域占目標(biāo)節(jié)點的布局區(qū)域的比例
      res.intersectionRect // 相交區(qū)域
      res.intersectionRect.left // 相交區(qū)域的左邊界坐標(biāo)
      res.intersectionRect.top // 相交區(qū)域的上邊界坐標(biāo)
      res.intersectionRect.width // 相交區(qū)域的寬度
      res.intersectionRect.height // 相交區(qū)域的高度
    })
  }
})

loadMedia() {
    //懶加載
    this.data.subEvent.forEach((subEventItem, subEventItemIndex) => {
      subEventItem.sub_event_files.forEach((subEventFileItem, subEventFileIndex) => {
        wx.createIntersectionObserver().relativeToViewport().observe(`.class_${subEventItemIndex}_${subEventFileIndex}`, (ret) => {
          //進(jìn)入可視區(qū)域
          if (ret.intersectionRatio > 0) {
            const temp = "subEvent[" + subEventItemIndex + "].sub_event_files[" + subEventFileIndex + "].visibility";
            this.setData({
              [temp]: true
            })
          }
        })
      })
    })
  },

視頻列表優(yōu)化

問題描述:微信小程序同一個頁面創(chuàng)建多個video標(biāo)簽拱雏,頁面拖動的時候棉安,視覺效果上有明顯的掉幀行為底扳;因此面對展示多視頻的情況直接在頁面渲染多個video標(biāo)簽就非常不合適了铸抑。

解決方案:上傳視頻文件的時候,保存視頻首幀圖衷模;<strong>頁面渲染時鹊汛,展示首幀圖,并且通過定位的方式把播放按鈕設(shè)置到圖片上方</strong>阱冶,模仿視頻效果刁憋,以此來代替創(chuàng)建多個video標(biāo)簽的方案。

核心API:wx.chooseMedia(Object object)(留意thumbTempFilePath屬性木蹬,為視頻的首幀圖)

體驗

image
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末至耻,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子镊叁,更是在濱河造成了極大的恐慌尘颓,老刑警劉巖,帶你破解...
    沈念sama閱讀 222,729評論 6 517
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件晦譬,死亡現(xiàn)場離奇詭異疤苹,居然都是意外死亡,警方通過查閱死者的電腦和手機(jī)敛腌,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 95,226評論 3 399
  • 文/潘曉璐 我一進(jìn)店門卧土,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人像樊,你說我怎么就攤上這事尤莺。” “怎么了生棍?”我有些...
    開封第一講書人閱讀 169,461評論 0 362
  • 文/不壞的土叔 我叫張陵颤霎,是天一觀的道長。 經(jīng)常有香客問我足绅,道長捷绑,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 60,135評論 1 300
  • 正文 為了忘掉前任氢妈,我火速辦了婚禮粹污,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘首量。我一直安慰自己壮吩,他們只是感情好进苍,可當(dāng)我...
    茶點故事閱讀 69,130評論 6 398
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著鸭叙,像睡著了一般觉啊。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上沈贝,一...
    開封第一講書人閱讀 52,736評論 1 312
  • 那天杠人,我揣著相機(jī)與錄音,去河邊找鬼宋下。 笑死嗡善,一個胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的学歧。 我是一名探鬼主播罩引,決...
    沈念sama閱讀 41,179評論 3 422
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼枝笨!你這毒婦竟也來了袁铐?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 40,124評論 0 277
  • 序言:老撾萬榮一對情侶失蹤横浑,失蹤者是張志新(化名)和其女友劉穎剔桨,沒想到半個月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體伪嫁,經(jīng)...
    沈念sama閱讀 46,657評論 1 320
  • 正文 獨居荒郊野嶺守林人離奇死亡领炫,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 38,723評論 3 342
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了张咳。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片帝洪。...
    茶點故事閱讀 40,872評論 1 353
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖脚猾,靈堂內(nèi)的尸體忽然破棺而出葱峡,到底是詐尸還是另有隱情,我是刑警寧澤龙助,帶...
    沈念sama閱讀 36,533評論 5 351
  • 正文 年R本政府宣布砰奕,位于F島的核電站,受9級特大地震影響提鸟,放射性物質(zhì)發(fā)生泄漏军援。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點故事閱讀 42,213評論 3 336
  • 文/蒙蒙 一称勋、第九天 我趴在偏房一處隱蔽的房頂上張望胸哥。 院中可真熱鬧,春花似錦赡鲜、人聲如沸空厌。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,700評論 0 25
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽嘲更。三九已至筐钟,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間赋朦,已是汗流浹背篓冲。 一陣腳步聲響...
    開封第一講書人閱讀 33,819評論 1 274
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機(jī)就差點兒被人妖公主榨干…… 1. 我叫王不留北发,地道東北人纹因。 一個月前我還...
    沈念sama閱讀 49,304評論 3 379
  • 正文 我出身青樓喷屋,卻偏偏與公主長得像琳拨,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子屯曹,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 45,876評論 2 361

推薦閱讀更多精彩內(nèi)容

  • 最近了解了一下微信小程序的性能優(yōu)化狱庇,搜集了一些相關(guān)的方法,整理出來恶耽,和大家共享密任。 一、控制代碼包大小 1. 開啟開...
    CC前端手記閱讀 285評論 0 0
  • 前端優(yōu)化 緩存 本地數(shù)據(jù)存儲 本地存儲分為cookie(兼容性好)偷俭、localStorage(存在時間久浪讳、存儲空間...
    ad6300d88704閱讀 742評論 0 3
  • 打個小廣告:如果你想獲取更多前端干貨,歡迎關(guān)注我的個人微信公眾號:前端夜談還有一只可愛的橘貓等著你來吸~~ 小程序...
    ssthouse閱讀 2,639評論 1 3
  • 圖片優(yōu)化技巧 前言:對于大多數(shù)前端工程師來說涌萤,圖片就是UI設(shè)計師(或者自己)切好的圖淹遵,你要做的只是把圖片丟進(jìn)項目中...
    loneliness_8728閱讀 972評論 0 1
  • 0 HTML5相關(guān) websocket WebSocket 使用ws或wss協(xié)議,Websocket是一個持久化的...
    可愛多小姐閱讀 885評論 0 0