2012-04-20 38 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

相關問題