在官方的优化建议中是这么写的
频繁的去 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 是点击按钮的滑动事件
再次歇歇各位啦~
建议不要自己处理滑动事件,而是用scroll-view、movable-view等组件来做。
如果图片列表向下移动 一段一段时间加速 除了毫秒 setData 还有别的办法吗
你好 我能问你一下问题是怎么解决的吗??挺急的 谢谢
hello!
我这边遇到一个问题,就是之前技术做一个页面中的悬浮按钮的时候,用的是button组件,在iOS上滑动浏览时表现正常,安卓上滑动页面查看时,按钮却会卡顿、上下闪动,这个情况不知道跟你是不是一样的?看到的话拜托回答下~万分感谢
再次求问~~~
有没有了解的朋友呀