在Sencha Touch 2中添加/删除Ext.Container中的项目的推荐方法?

Thi*_*yen 4 extjs sencha-touch sencha-touch-2

我正在优化我的应用程序.最初,它是一个,Ext.TabPanel但我决定只使用Ext.TabBar底部停靠并更改上面的视图,因此它需要从我的主要添加/删除操作Ext.Container.

所以我的问题是:我应该以什么方式来Ext.Container有效地添加/删除项目?我的意思是:快速,不会导致内存泄漏,而且,不会导致这样的错误:带有按钮的视图,首先添加,所有处理程序(通过refscontrol在控制器中定义)运行良好但第二次(即它被移除并在以后再次添加),所有处理程序都会死亡.

提前致谢!

sta*_*229 6

你必须确保你破坏面板被破坏,否则它将坐在dom中.

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

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

  • 当你没有销毁它们时,会有一个存根仍然存在于DOM上,我不确定它是整个组件(最有可能)还是只是一个占位符.您可能知道DOM是浏览器中最慢的部分,因此特别是对于移动应用程序,我们希望尽可能地保持它的精简程度.有一些最好的做法,比如何时删除某些东西而不是隐藏它而不是一起销毁它.如果您经常更改标签栏上的面板,最好只隐藏面板而不是完全删除,因为用户可以经常切换回来. (3认同)