Android 下用户在滑动时会感觉到卡顿 歇歇歇歇~
发布于 5 年前 作者 guiyinggu 4536 次浏览 来自 问答

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

频繁的去 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 是点击按钮的滑动事件

再次歇歇各位啦~

6 回复

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

再次求问~~~

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

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

hello!

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

有没有了解的朋友呀

回到顶部