在我以前的项目中,我曾经创建了一个javascript app对象并创建了对dom和dijit节点的引用。前段时间我读到这会导致垃圾收集问题,因为js会引用dom(或这些行上的某些内容)
app = {
// UI - divs
_divMainView : null,
_divCurrent : null,
_divTmSelectContianer : null,
_divSpSelectContianer : null,
_loadingMsg : null,
_loadingOverlay : null,
// tabs
_tabs : null,
_tab1 : null,
_tab2 : null,
init : function() { },
_initUi : function() {
dojo.parser.parse();
this._divMainView = dojo.byId('main');
this._tab2 = dijit.byId('tab1');
// wire up events
},
_handleEvent : function() {},
_doSomething : function() {}
}
我喜欢我以前做事的方式是,节点'id'仅在代码中引用一次。
那么替代方案是什么?每次我需要一个domNode / dijit小部件时使用dojo.ById()和dijit.byId()?我能想到的只有可维护的选项是使用小部件/节点ID创建“常量”。