如何解决这个闭包在哪里泄漏内存?
自从我写了下面的闭包来封装一个扩展,我的浏览器内存不足。
此代码(出于可读性目的)使用名为 cytoscape 的 javascript 包,这是一个图论框架。我正在尝试在此闭包内注册 cytoscape 的扩展,因为我希望注册独立于主代码。
"use strict";
var expandCollapseApi = (function() {
cdnd = null;
var api = null;
// Add Group Boxes
function addGroupBoxes(setSavedStyle) {
//debugger;
if (api) {
return false;
}
.
.
.
.
.
api = cy.expandCollapse({ //should this be called before or after?
layoutBy: null,fisheye: false,undoable: false,animate: false
});
cdnd = cy.compoundDragAndDrop(cdnd_enable_options);
cdnd.enable();
return true;
}
// Remove Group Boxes
function removeGroupBoxes() {
if (api == null) {
return false;
}
// add search results if necessary
cy.style().selector(':parent').style({
'display': 'none'
});
cdnd.disable();
api = null;
cdnd = null;
return true;
}
function collapseNodes(nodes,options) {
cy.expandCollapse('get').collapse(nodes,options);
}
function expandNodes(nodes,options) {
cy.expandCollapse('get').expand(nodes,options);
}
return {
addGB: addGroupBoxes,removeGB: removeGroupBoxes,collapse: collapseNodes,expand: expandNodes
};
})();
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。