收藏
回答

7kb的AppData做setData也会卡顿几秒钟?内有代码片段跟动图,可重现

代码片段 https://developers.weixin.qq.com/s/vEV0jkm17a4R

这是gif:https://s27.aconvert.com/convert/p3r68-cdx67/hry4f-4yah7.gif

真机机型:安卓 三星 s8



代码非常简单,开发者工具运行一切正常,但是真机运行时,反复滑动,就会出现“准备渲染“跟“渲染成功”隔了两三秒的情况,MenuItem里面有116个元素,每个元素只有一个属性,当我把MenuItem的数据减少时就很难重现了,元素越多越容易重现


回答关注问题邀请回答
收藏

1 个回答

  • 卢霄霄
    卢霄霄
    2018-12-01

    https://developers.weixin.qq.com/s/apfoBlmA7v4V

    这样好点不

    2018-12-01
    有用
    回复 9
    • 逆风
      逆风
      2018-12-01

      真机运行还是一样...而且这样setData不是更频繁了吗?


      这个弹框加上去在真机才能看到效果...

      2018-12-01
      回复
    • 卢霄霄
      卢霄霄
      2018-12-01回复逆风

      主要。。我没安卓机器测试~

      2018-12-01
      回复
    • 逆风
      逆风
      2018-12-01回复卢霄霄

      哈哈~已经很感谢了,我刚刚试了下,现在的代码在iphone下确实稳稳的,就是安卓有点问题

      2018-12-01
      回复
    • 逆风
      逆风
      2018-12-03回复卢霄霄

      老铁,再请教一个问题,为什么我换成用按钮来触发这个选中事件就不会有任何延迟问题呢?

      是不是微信对于bindscroll触发或者setTimeout延时触发的setData有特殊处理?


      2018-12-03
      回复
    • 卢霄霄
      卢霄霄
      2018-12-04回复逆风

      我是这么理解的,问题不是setData慢,而是scroll的时候,会产生大量的事件,在事件队列里,setData的渲染也会在这个队里里。。因为scroll的阻塞,才会有setData渲染慢的情况。而setData的回调也是在渲染后才放到事件队列,同样被scroll的事件们阻塞,所以慢。所以,你去掉scroll监听了才正常的吗?

      2018-12-04
      回复
    查看更多(4)
登录 后发表内容