为了优化我的应用程序的性能,我尝试尽可能减少其主轮播中的元素数量。我只剩 3 个一阶商品(正在查看的商品,以及 N-1 和 N+1)。
我还想删除 N-1 和 N+1 轮播项目的大部分内容,并以编程方式添加当前正在查看的项目的内容(以便轮播项目看起来像这样:http:/ /i.imgur.com/gm7cL7E.png)。
activeItemChange
是事件监听器的明显选择。问题是,它显然相对较慢,尤其是在低端 Android 手机上。开火可能需要长达 4 秒的时间。
我已经尝试将轮播的onDrag
属性作为触发内容创建的不同方式,但要求手机执行两项操作(动画轮播移动并创建新的内容项)会使轮播运动动画不稳定。
有什么办法可以修改 activeItemChange 或者轮播来提高听者的开火速度?或者我可以看到的任何其他听众会表现更好?我已经做了很多工作来优化应用程序的整体性能(缩小 DOM、事件委托等)并且应用程序的其余部分运行得很好,所以我不确定做一般性能工作是否会释放足够的空间CPU 让 activeItemChange 达到我想要的水平。
编辑:我做了更多的性能改进,试图释放足够的 CPU,但无济于事。任何额外的提示将不胜感激。
编辑 2:建议order: 'before'
用于事件,如:
listeners : {
order : 'before',
activeitemchange : someFunction
}
这确实会更快地发射。但是,由于 activeItemChange 一定还没有被触发,我无法确定哪个项目应该添加轮播内容。如果我能确定旋转木马的走向,那就足够了,但我似乎也无法理解。
此外,由于 Sencha 似乎会自动绘制 N+1 和 N-1 并擦除 N+2 和 N-2,我想我可以用它来更快速地确定物品在轮播中的位置;不幸的是,根据 Sencha 文档中提出的性能问题,看起来它最终的性能会更差,而不是更好。