2012-04-20 41 views
4

我正在优化我的应用程序。最初,这是一个Ext.TabPanel,但我决定只使用停靠在底部的Ext.TabBar并更改上面的视图,因此它需要我的主要Ext.Container大量的添加/删除操作。建议在Sencha Touch 2的Ext.Container中添加/删除项目的方法?

所以我的问题是:我该如何有效地从我的Ext.Container中添加/删除项目?我的意思是:快速,不会导致内存泄漏,并且不会导致像这样的错误:带有按钮的视图,首先添加,所有处理程序(通过控制器中的refscontrol定义)工作良好,但第二个时间(即它被删除并在以后再次添加),所有处理程序都会死亡。

在此先感谢!

回答

6

你必须确保你销毁面板被摧毁,否则它将坐在dom中。

通常要从容器中删除组件,您可以使用Container remove()函数,该函数将第一个参数作为要删除的项目,第二个参数是指示将其删除的布尔值。您应确保将其设置为true,以确保您的DOM尽可能保持精简。除非你将在不久的将来重新使用这个组件,并且不想再次渲染它,否则你不需要销毁它。

http://docs.sencha.com/touch/2-0/#!/api/Ext.Container-method-remove

+0

感谢您的回答。如果我调用myContainer.remove('item_id',false)',当再次调用add()时它会更快,因为该项目还没有被销毁,对吧? – 2012-04-20 17:48:16

+0

是的,这就是为什么他们会给你破坏它的能力。请注意,容器还有一个autoDestroy属性(默认为true),如果您没有将任何内容传递到第二个参数 – stan229 2012-04-20 17:54:57

+0

中,但是当我不试图销毁我的“已删除”项目时,它将被读取的速度会慢一些在其他行动? – 2012-04-20 17:56:24

相关问题