回答
也許在內存管理的手冊的Qooxdoo文件可能會有所幫助: http://manual.qooxdoo.org/devel/pages/development/memory_management.html
處置和銷燬在現實中是同一枚硬幣的兩面:垃圾是破壞對象的行爲。通過將__destruct()作爲onDispose()方法,它們的區別可能會變得更加清晰。作爲一個經驗法則,任何創建QX對象的類都要對其進行適當的銷燬。通常,這是類的析構函數完成的,但可能隨時發生,這取決於您的業務邏輯。
處置是通過完成(前)
this._disposeObjects("_buttonOk", "_buttonCancel");
this._disposeArray("_children");
this._disposeMap("_registry");
電話。有些類可能會提供銷燬方法,如qx.ui.core.Widget
這非常有幫助。它清除了想法。 – 2012-04-26 08:15:23
如果您使用object,則不需要實施dispose。只有毀滅是必要的,而不是一切(見上抓住你應該刪除哪一個,哪一個你不需要)
它將看起來像這樣:
qx.Class.define("q.view.Home"),{
extend : qx.ui.core.Widget,
construct:function(){
this.base(arguments);
},
members:{
__qooxdoo_object:null
},
destruct:function(){
this._disposeObjects("__qooxdoo_object");
}
});
這樣簡單。 在內存管理鏈接:這是非常重要的:「qx.disposerDebugLevel」:「2」
它會自動報告(對螢火蟲例如)對象誰沒有妥善銷燬。
所以你將能夠確切地知道你應該刪除什麼,以正確的方式刪除。
而且,想象這一點,你有一個容器(複合例如,或任何東西),有5個孩子,你要清空內容,但不是容器,你應該做的那樣:
(根據容器所有兒童的父元素)
var childrenList = container.removeAll();
for(var i=0; i<childrenList.length; ++i){
childrenList[i].dispose();
}
如果只處理出於某種原因,我不知道Widget類(在框架的Qooxdoo OBJET)有時會引發錯誤。如果你只刪除所有,它不會處理兒童,但只能刪除它們。 如果你同時處理(dispose和removeAll),你將沒有問題,並妥善處理兒童。
- 1. 破壞不破壞
- 2. 破壞不破壞
- 3. Application.Restart破壞我的設置
- 4. Cookie破壞會話破壞,爲什麼?
- 5. 破壞範圍在$破壞事件
- 6. 在堆棧上處理對象破壞
- 7. VS2010調試器破壞處理異常
- 8. 如何處理破壞邊緣案例
- 9. 破壞與jQuery
- 10. Joomla破壞
- 11. 破壞陣列()
- 12. 破壞秩序
- 13. JavaScript iframe破壞
- 14. CGContextRef被破壞?
- 15. 破壞WebWorkers
- 16. 破壞片段
- 17. Java Path.startswith()破壞?
- 18. MFC CFindReplaceDialog破壞
- 19. SP.NavigationNode.get_isVisible()被破壞?
- 20. 邏輯破壞
- 21. Sessions破壞CodeIgnitor
- 22. Rails破壞js.erb
- 23. 破壞的SWFUpload
- 24. 破壞VS destroy_all
- 25. setAccessoryType破壞TableViewCell
- 26. JSTween庫破壞
- 27. 牆壁破壞
- 28. 陰謀破壞
- 29. DeviceSumModuleF32被破壞
- 30. 數據破壞
yes我已經閱讀過這個,但是沒有任何一個實現Dispose和Destruct的例子來看看它是如何工作的 – 2012-04-26 07:48:14