Android 下用户在滑动时会感觉到卡顿 歇歇歇歇~
在官方的优化建议中是这么写的
频繁的去 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 是点击按钮的滑动事件
再次歇歇各位啦~