Sencha touch 2 activeItemChange:如何提高其性能?

Sencha touch 2 activeItemChange:如何提高其性能?,sencha-touch-2,Sencha Touch 2,为了优化我的应用程序的性能,我尝试尽可能减少其主旋转木马中的元素数量。我只列出了3个一次订购的项目(一个正在查看,以及N-1和N+1) 我还想剪切N-1和N+1旋转木马项目的大部分内容,并以编程方式添加当前正在查看的项目的内容(这样旋转木马项目看起来像这样:) activeItemChange显然是事件侦听器的选择。问题是,它显然相对较慢,尤其是在低端安卓手机上。它可能需要4秒钟才能开火 我尝试了旋转木马的onDrag属性,作为启动内容创建的另一种方式,但要求手机执行两项操作(设置旋转木马移动动

为了优化我的应用程序的性能,我尝试尽可能减少其主旋转木马中的元素数量。我只列出了3个一次订购的项目(一个正在查看,以及N-1和N+1)

我还想剪切N-1和N+1旋转木马项目的大部分内容,并以编程方式添加当前正在查看的项目的内容(这样旋转木马项目看起来像这样:)

activeItemChange
显然是事件侦听器的选择。问题是,它显然相对较慢,尤其是在低端安卓手机上。它可能需要4秒钟才能开火

我尝试了旋转木马的
onDrag
属性,作为启动内容创建的另一种方式,但要求手机执行两项操作(设置旋转木马移动动画和创建新内容项)会使旋转木马移动动画出现波动

有没有办法修改activeItemChange或旋转木马来提高侦听器的启动速度?或者我可以看到的任何其他听者会表现得更好?我在优化应用程序的整体性能(缩小DOM、事件委派等)方面做了大量工作,应用程序的其余部分运行得很好,因此我不确定做一般性能工作是否会释放足够的CPU,以使activeItemChange达到我想要的水平

编辑:为了释放足够的CPU,我做了更多的性能改进,但毫无效果。如有任何额外提示,将不胜感激

编辑2:有人建议在事件中使用
顺序:'before'
,如:

listeners : {
    order : 'before',
    activeitemchange : someFunction
}
这确实能更快地发射。然而,由于activeItemChange还没有被激活,我无法确定应该添加哪个项目。如果我能确定旋转木马的方向,那就足够了,但我似乎也不能确定


此外,由于Sencha似乎会自动绘制N+1和N-1,并删除N+2和N-2,因此我想我可以使用它作为物品在旋转木马中位置的更快速的决定因素;不幸的是,基于Sencha文档中提出的性能问题,它似乎最终会导致性能更差,而不是更好。

好问题。仅仅是一个建议可能行得通,也可能行不通。与其专注于旋转木马的activeItemChange,不如尝试将项目放入其中的容器的绘制事件,或者如果数据不会更改,则可以初始化事件,初始化速度比绘制速度快,但仅触发一次,因此如果内容要更改,请使用绘制,否则,使用initialize进行尝试可能是更好的方法。

谢谢您的建议!不幸的是,Sencha Touch自动在旋转木马中绘制项目N+1和N-1,因此我无法确保只有项目N包含内容。这确实是个棘手的问题。