如何在ExtJS 4.1中销毁存储?

5
我曾经使用过一个商店的autoDestroy属性,以清除内存资源。但是我在API中找不到它了。
我在4.1 RC1 Bug Fixes中发现了EXTJSIV-4844 - Ext.data.Store autoDestroy config is missing(虽然我无法找到该错误的线程)。
现在在RC3中,该配置已从API中删除,并且不再出现在源文件中。
我曾经为视图使用Ext.destroy,但从未为商店使用过。根据API描述Ext.destroy方法here的方式,它听起来像是:“这个方法是为小部件设计的,但它将接受任何对象并查看它能做什么”。换句话说,不是非常明确。
是否有人知道Ext.destroy是否适用于商店并将其从内存中移除?或者有什么推荐的方法?
1个回答

8
Ext.data.Store.destroyStore 看起来是您想要使用的方法。出于某种原因,它是私有的(即使勾选了显示私有内容,也不会在文档中显示),但它似乎具有与 3.4 的公共 Store.destroy http://docs.sencha.com/ext-js/3-4/#!/api/Ext.data.Store-method-destroy 相同的功能。在 4.x 中有一个 Store.destroy 方法,但那是完全不同的东西,不能用于从内存中删除存储区。以下是来自http://docs.sencha.com/ext-js/4-1/source/AbstractStore.html#Ext-data-AbstractStore的源代码:
// private
destroyStore: function() {
    var me = this;

    if (!me.isDestroyed) {
        if (me.storeId) {
            Ext.data.StoreManager.unregister(me);
        }
        me.clearData();
        me.data = me.tree = me.sorters = me.filters = me.groupers = null;
        if (me.reader) {
            me.reader.destroyReader();
        }
        me.proxy = me.reader = me.writer = null;
        me.clearListeners();
        me.isDestroyed = true;

        if (me.implicitModel) {
            Ext.destroy(me.model);
        } else {
            me.model = null;
        }
    }
},

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接