收藏
回答

Android 下用户在滑动时会感觉到卡顿 歇歇歇歇~

问题模块
API和组件

在官方的优化建议中是这么写的


频繁的去 setData

在我们分析过的一些案例里,部分小程序会非常频繁(毫秒级)的去setData,其导致了两个后果:

  • Android 下用户在滑动时会感觉到卡顿,操作反馈延迟严重,因为 JS 线程一直在编译执行渲染,未能及时将用户操作事件传递到逻辑层,逻辑层亦无法及时将操作处理结果及时传递到视图层;

  • 渲染有出现延时,由于 WebView 的 JS 线程一直处于忙碌状态,逻辑层到页面层的通信耗时上升,视图层收到的数据消息时距离发出时间已经过去了几百毫秒,渲染的结果并不实时;


那么问题来了,感觉只能滑动的过程中去 setData 啊, 有没有遇到过这个问题的朋友, 你们是如何优化的? 或者有好的建议的朋友,  这块纠结好长时间了....   歇歇各位了~ 祝各位工作顺利


附我的相关代码如下

questionMove: function(e) {
        var screenHeight;
        wx.getSystemInfo({
            success: function (res) {
                screenHeight = res.windowHeight;
            }
        })
        if (e.touches[0].clientY > 20 && e.touches[0].clientY < screenHeight - 42) {
            var x = screenHeight - e.touches[0].clientY;
            that.setData({
                questionHeight: x - 10 + 'px',
                questionTop: e.touches[0].clientY
            });
        }
    }


questionHeight 是滑动内容的高度值

questionTop 是滑动按钮的位置

questionMove 是点击按钮的滑动事件


再次歇歇各位啦~

最后一次编辑于  2017-09-14  (未经腾讯允许,不得转载)
邀请回答
复制链接收藏投诉关注问题回答

6 个回答

  • 高国栋
    高国栋
    2017-09-15

    有没有了解的朋友呀


    2017-09-15
    赞同
    回复
  • 高国栋
    高国栋
    2017-09-21

    再次求问~~~

    2017-09-21
    赞同
    回复
  • LastLeaf
    LastLeaf
    2017-09-21

    建议不要自己处理滑动事件,而是用scroll-view、movable-view等组件来做。

    2017-09-21
    赞同
    回复
  • Sweetnienie
    Sweetnienie
    2018-02-26

    hello!

    我这边遇到一个问题,就是之前技术做一个页面中的悬浮按钮的时候,用的是button组件,在iOS上滑动浏览时表现正常,安卓上滑动页面查看时,按钮却会卡顿、上下闪动,这个情况不知道跟你是不是一样的?看到的话拜托回答下~万分感谢

    2018-02-26
    赞同
    回复
  • Bee
    Bee
    2018-03-11

    你好 我能问你一下问题是怎么解决的吗??挺急的 谢谢

    2018-03-11
    赞同
    回复
  • 一切随风
    一切随风
    2018-07-12

    如果图片列表向下移动 一段一段时间加速  除了毫秒 setData  还有别的办法吗

    2018-07-12
    赞同
    回复