加载中 ...
首页 > 新闻资讯 > 经验心得 正文

小程序 Android侧移动视图拖放卡上帧优化

2019-07-12 22:00:24 来源:沈阳小程序开发 作者:沈阳软件开发

例如,页面有2个元素A和B.用户在A上进行touchmove手势,要求B跟随移动。可移动视图是典型示例。 touchmove事件的响应过程是:

a,从视图层(Webview)到逻辑层(App Service)的touchmove事件

b,App Layer处理touchmove事件,然后通过setData

设置B的位置

touchmove的响应需要经过2 次的逻辑层和渲染层的通信 以及一次渲染,并且通信需要花费很多时间。此外,** setData渲染还将阻止其他脚本执行**,从而导致整个用户交互的动画过程延迟。

由于上述原因,微信小程序引入了WXS(WX Script),它可以使逻辑代码在视图层(Webview)中运行,并通过减少视图层和逻辑层之间的数据传输次数来达到优化的目的。具体参考:WXS和WXS响应事件

在Taro中使用WXS的优化实践

背景:由于Taro目前不支持WXS(taro#2959),我不能直接在项目中编写WXS代码,让Taro帮我编译成WXML。所以你必须用一个小技巧来实现,我希望将来Taro可以支持WXS。

如果您使用的是本机小程序开发,则可以直接参考WXS和WXS响应事件来实现。如果是其他框架,您可以参考本文的实践。

优化前的代码

在优化之前,x和y坐标值由setState动态更新,以便通过使用可移动视图实现拖动视图效果。

101833s9vzv8rsge533opa.jpg

101832gjiemps0hxes7prr.jpg

进行优化

首先你需要删除可移动视图组件,因为你不能使用moving-vie沈阳软件设计

ad.jpg

w和WXS减少数据传输的路径数量。其次,移动视图是用CSS制作的动画。我们可以使用位置:绝对值而不是动态设置WXS中的top& left值来实现可移动视图的效果。

101833f2imsstnt4kzyeik.jpg

其次,我在小程序 developer dist目录中的相应组件的目录(使用WXS组件或页面)中创建了move.wxs的脚本文件,该目录用于动态设置节点的顶部和左侧坐标值。需要动画。

在dist目录中编写move.wxs的原因是因为Taro不支持WXS,所以它不识别.wxs类型的文件而且不会编译。

101833hb3nmrmqh8mxkfjm.jpg

最后,move.wxs在相应的JSX下引入并绑定到touchmove事件。

101833tgdqd5dltggttlos.jpg

“沈阳软件公司”的新闻页面文章、图片、音频、视频等稿件均为自媒体人、第三方机构发布或转载。如稿件涉及版权等问题,请与

我们联系删除或处理,客服QQ:55506560,稿件内容仅为传递更多信息之目的,不代表本网观点,亦不代表本网站赞同

其观点或证实其内容的真实性。