javascript - 当我销毁保留在初始配置中的 ExtJs 网格对象时,导致大量内存泄漏,如何正确删除此初始配置?

标签 javascript extjs memory-leaks extjs4.2

我正在面板内创建一个网格,当我销毁网格时,对其的引用将保留在面板的初始配置中,这意味着它从未被正确清理过。有没有办法阻止这个初始配置的创建/清除它,以便正确清除它所引用的对象?

最佳答案

您可以在 Base 析构函数中将其清空。不幸的是 Base 不是一个真正的类,因此通过 Ext.define 覆盖它不是正确的方法,但我们可以通过闭包解决这个问题:

(function() {
    var oldDestroy = Ext.Base.destroy;

    Ext.Base.destroy = function() {
        this.config = this.initialConfig = null;
        oldDestroy.call(this);
    };
})();

如果您的应用程序存在内存泄漏问题,我会强烈建议您升级到 Ext JS 6。我们在 6.0 中堵住了大部分组件泄漏,不幸的是,如果没有重大兼容性问题,这项工作基本上无法向后移植。

关于javascript - 当我销毁保留在初始配置中的 ExtJs 网格对象时,导致大量内存泄漏,如何正确删除此初始配置?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33299854/

相关文章:

javascript - Angularjs 更改语言 ui-grid 选项

javascript - 使用原型(prototype) Form.serialize() 有多安全?

javascript - ExtJS 4.2 - 如何将数组映射到模型字段并动态显示在网格列上?

c - 如何检查分配给进程中打开文件的内存

java - 将文本文件读取为字符串而不消耗大量内存

c++ - audiodg.exe 随着我调用的每个 Beep() 函数不断增长。系统不释放内存

javascript - 当我填写所有输入时,提交按钮不起作用

javascript - Angular Controller 引用实例存在于 ngDestroy 之后

javascript - 如何在extjs4中添加创建窗口的功能?

javascript - ExtJS 4 - 动态更改折线图中的图例颜色