午夜91福利视频,午夜成人在线观看,午夜在线视频免费观看,午夜福利短视频,精品午夜成人免费视频APP

小程序模板網

嘗試解決微信小程序分頁最后setData數據太大限制的問題

發布時(shi)間:2018-10-18 08:40 所屬欄目:小程序開發教程

 前(qian)些天,突然接到用戶的(de)大量反饋,我們的(de)小程序頻(pin)繁出(chu)現閃退,崩潰的(de)現象。如圖(tu),

于是(shi)馬上(shang)(shang)著(zhu)手追查(cha)問(wen)題(ti),首先確定(ding)了(le)(le)(le)(le)導(dao)致閃(shan)退(tui)(tui)的頁(ye)面(mian)。是(shi)在(zai)一個(ge)有(you)長(chang)列(lie)(lie)表(biao)(biao)的頁(ye)面(mian),當上(shang)(shang)拉加(jia)(jia)載更(geng)(geng)多,翻(fan)(fan)頁(ye)翻(fan)(fan)多幾頁(ye)的時候就導(dao)致閃(shan)退(tui)(tui)了(le)(le)(le)(le)。經過(guo)重重排查(cha)(時間問(wen)題(ti),這里就不(bu)詳細描述排查(cha)的方法了(le)(le)(le)(le),大(da)多數(shu)用(yong)的都(dou)是(shi)縮(suo)小范圍排除法啦),最后終于確定(ding)了(le)(le)(le)(le)問(wen)題(ti)所(suo)在(zai),原來是(shi)在(zai)列(lie)(lie)表(biao)(biao)中,同事(shi)最近新(xin)加(jia)(jia)上(shang)(shang)的css3動(dong)(dong)畫(hua)(hua)所(suo)致,這里的列(lie)(lie)表(biao)(biao)是(shi)循環(huan)渲染的一個(ge)組(zu)件,組(zu)件中的一個(ge)彈窗的彈出和收起,使用(yong)動(dong)(dong)畫(hua)(hua),但(dan)是(shi)這里沒有(you)加(jia)(jia)上(shang)(shang)wx:if,導(dao)致了(le)(le)(le)(le)循環(huan)渲染該(gai)動(dong)(dong)畫(hua)(hua),所(suo)以(yi)翻(fan)(fan)頁(ye)翻(fan)(fan)著(zhu)翻(fan)(fan)著(zhu)就掛掉了(le)(le)(le)(le)。 確定(ding)了(le)(le)(le)(le)問(wen)題(ti),就很好辦了(le)(le)(le)(le),加(jia)(jia)上(shang)(shang)條件判斷,只有(you)需要的時候,才(cai)渲染彈出彈窗。真機調試,暴力狂刷數(shu)據(ju),發(fa)現閃(shan)退(tui)(tui)的現象不(bu)再(zai)出現了(le)(le)(le)(le),閃(shan)退(tui)(tui)問(wen)題(ti)解決,然而高興(xing)不(bu)到(dao)三(san)分鐘,又出問(wen)題(ti)了(le)(le)(le)(le),發(fa)現翻(fan)(fan)頁(ye)到(dao)十幾頁(ye)的時候,再(zai)也刷不(bu)動(dong)(dong)后面(mian)的數(shu)據(ju)了(le)(le)(le)(le),明明是(shi)還有(you)更(geng)(geng)多數(shu)據(ju)的。再(zai)在(zai)開發(fa)工(gong)具上(shang)(shang)看查(cha)看數(shu)據(ju),結果控制臺報了(le)(le)(le)(le)這么一個(ge)錯

在(zai)真機上為:

這是什(shen)么(me)問題呢(ni),查看(kan)官方文(wen)檔,發現是有這樣的限(xian)制(zhi)的

回顧我們的代碼,這里(li)的分頁加(jia)載(zai)數據(ju),上拉加(jia)載(zai),數據(ju)是(shi)放在一個for循環里(li)去加(jia)載(zai),數據(ju)源是(shi)一個數組(zu)對象。在加(jia)載(zai)下一頁數據(ju)時,將下一頁的數據(ju)拼到當前數組(zu)后面(mian)。這里(li)是(shi)常規的做法。可以看(kan)(kan)看(kan)(kan)代碼:

這(zhe)里可以看到,每次(ci)獲取(qu)新的(de)一(yi)(yi)頁,都要重新setData新的(de)數組(zu),仔(zi)細想想,當這(zhe)個數組(zu)到后面(mian)(mian)越來越大的(de)時候,很(hen)容易(yi)就超出了單(dan)次(ci)設置數據超過1024kb的(de)限制了。那(nei)么怎么解決這(zhe)個問題呢(ni),這(zhe)里官方(fang)文(wen)檔里面(mian)(mian)其實有提到一(yi)(yi)個注(zhu)意(yi)點,

 既然(ran)這里是支持(chi)改(gai)變數組的(de)某一項(xiang),那么分(fen)頁的(de)問(wen)題(ti),可以改(gai)變為(wei)一個二維(wei)數組,還是直接看(kan)代碼(ma)吧。

這里(li)的(de)方法則暫時擺脫了單次設置數(shu)(shu)據(ju)多大的(de)問題。當然,要是單頁的(de)數(shu)(shu)據(ju)過(guo)多,還是會出現(xian)問題的(de)。最合(he)適的(de)還是對數(shu)(shu)據(ju)結構(gou)進行精簡,前(qian)端(duan)不(bu)必(bi)要的(de)數(shu)(shu)據(ju),可以不(bu)傳過(guo)來前(qian)端(duan)。

寫在(zai)最(zui)后(hou)(hou),這(zhe)次第(di)一次寫類似的(de)分(fen)享,描述還是(shi)有(you)些不清晰,以后(hou)(hou)可(ke)以多嘗試這(zhe)樣(yang)的(de)總結吧。


 


易(yi)優小程序(企(qi)業版)+靈活api+前后代碼(ma)開(kai)源 碼(ma)云(yun)倉庫:
本文地址://www.jinyoudianli.com/wxmini/doc/course/24888.html 復制鏈接 如(ru)需定制請聯系易優客(ke)服咨詢:

工作日 8:30-12:00 14:30-18:00
周六及部分節假日提供(gong)值班(ban)服務(wu)

易小優(you)
轉人工 ×