收藏
回答

关于setDate的值过大的问题

问题模块
API和组件

是这样的,最近在弄一个筛选功能.本来功能已经做完了,到调试的时候,发现有一个筛选项居然有近三千条数据,是的,你没看错,是三千条!!!没说过啊....搞毛啊.

然后,妥妥地出现卡爆了的现象.然后通过排除后,我发现,80%时间是在这个代码处理上.这个SearchInit中就包涵了那三千个元素的数组.

    换句话说,setData这个方法在处理较大的数据时会出现很卡的情况.

    也许上面那句话可能不严谨,因为在不手牌子的手机上,相应的处理时间会出现很大的偏差值.

目前随手测试了几个机型,小米6手机上处理时间约700ms,在华为mate9上约2S,在iphone6s上也是2S左右.

而且比较奇怪的是,以mate9为例,相应的函数处理时间为2S,但是用秒表掐的视图变化时间却在3S多.


这个是相应视图,领域项就是那三千条数据.SearchInit是这个筛选功能所需要所有数据的一个集合.


    我想问一下这1S多的差值时间用于了什么?然后,如何解决setData处理大值数据时的较慢问题?


最后一次编辑于  2017-11-24
回答关注问题邀请回答
收藏

5 个回答

  • Special
    Special
    2017-11-24

    时间都耗在都 diff 上了,一下子不要放太多数据,可以分队列处理

    2017-11-24
    赞同
    回复
  • 卖女孩的小男孩คิดถึง
    卖女孩的小男孩คิดถึง
    2017-11-24

    懒加载,一次显示100,往下拉达到一定就push100进来如此类推

    2017-11-24
    赞同
    回复
  • 杨李云
    杨李云
    2017-11-24

    显示哪个就set哪个

    2017-11-24
    赞同
    回复
  • morganfly
    morganfly
    2017-11-24

    不行啊,因为可以同时选择多个一级项下面的二级项啊

    2017-11-24
    赞同
    回复
  • 一天两觉
    一天两觉
    2017-11-24

    那就不要一次返回这么多,做个分页加载的

    2017-11-24
    赞同
    回复