美文网首页
小程序长列表优化

小程序长列表优化

作者: 罂粟1995 | 来源:发表于2020-03-24 12:52 被阅读0次

遇到这么一个问题,如果小程序有个下拉列表,假如列表数据很多,列表很长,可能会有越往下拖动程序越慢的现象。

原因:setData最好不要一次性传很大的数据。小程序基于双线程机制,逻辑层和渲染层是分开的,所以当调用setData的时候,涉及到逻辑层和渲染层之间的数据传输,如果一次性setData的数据过大,就会出现卡顿现象,甚至报错。

未优化情况下,我们实现分页加载长列表,会写一个一维数组,每获取到新一页数据时,就把它们concat到list上去,这样就会导致每次setData时的list越来越长越来越长,渲染速度也就越来越慢。

解决方案:分批setData,减少一次setData的数量。不要一次性setData list,而是把每一页一批一批地set Data到这个list中去。

具体实现:利用小程序setData方法支持的数据路径的写法。定义一个二位数组,每次得到的新一页的一维数组,通过数据路径写法加到这个二位数组中去,结构大概是:[[page1List],[page2List],[page3List]……]
代码示例:

// 1.通过一个二维数组来存储数据
let feedList = [[array]];

// 2.维护一个页面变量值,加载完一次数据page++
let page = 1

// 3.页面每次滚动到底部,通过数据路径更新数据
onReachBottom:()=>{
    fetchNewData().then((newVal)=>{
        this.setData({
            ['feedList[' + (page - 1) + ']']: newVal,
        })
    }
}

通过wx:for渲染这个二维数组。

相关文章

  • 小程序长列表优化

    遇到这么一个问题,如果小程序有个下拉列表,假如列表数据很多,列表很长,可能会有越往下拖动程序越慢的现象。 原因:s...

  • 微信小程序 ---- 优化列表

    我写个小作文先。。面试时候两位面试官都问虚拟列表的问题。。我心说能不能面上再说我先搞搞。。那段时间在忙跳槽,没怎么...

  • 长列表优化——虚拟列表

    前言 场景是小程序长列表优化,框架基于mpvue,固定高度。(动态高度暂时先不考虑) 关于recycle-view...

  • 小程序 多图列表 性能优化

    打个小广告:如果你想获取更多前端干货,欢迎关注我的个人微信公众号:前端夜谈还有一只可爱的橘猫等着你来吸~~ 小程序...

  • iOS性能优化系列篇之“列表流畅度优化”

    iOS性能优化系列篇之“列表流畅度优化” iOS性能优化系列篇之“列表流畅度优化”

  • react-native 性能优化

    拆包优化网络优化列表优化

  • 近期200+热门微信小程序demo源码下载汇总

    微信小程序 外卖demo 微信小程序demo:课程列表 微信小程序demo:宅男社区 微信小程序——日历(支持农历...

  • 小程序阶段性总结

    1.长列表性能优化 貌似没有什么好的办法,减少DOM节点的数量就是最好的办法了。由于小程序没有追加写的功能,固定位...

  • 小程序优化

    https://github.com/tvfe/wxpage转...马克一下 有空研究研究来自http://wet...

  • 小程序优化

    1 数据优化,我这里分为两类 A渲染交互类,B数据提交类渲染类放在data 里面,交互类可以使用this.set...

网友评论

      本文标题:小程序长列表优化

      本文链接:https://www.haomeiwen.com/subject/ifroyhtx.html