5

我曾经使用商店的autoDestroy财产。清理内存资源。但我再也无法在 API 中找到它了。

我发现EXTJSIV-4844 - Ext.data.Store autoDestroy config is missing列在4.1 RC1 Bug Fixes中(尽管我在任何地方都找不到该错误的线程)。

现在在 RC3 中,该配置已从 API 中消失,并且不再位于源文件中。

我用过Ext.destroy视图,但从不用于商店。API 在这里描述该Ext.destroy方法的方式听起来像:“此方法是为小部件设计的,但它会接受任何对象并查看它可以做什么”。- 换句话说,不是很确定。

有没有人碰巧知道是否Ext.destroy适用于商店并将它们从内存中删除?或者推荐的方法是什么?

4

1 回答 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;
        }
    }
},
于 2012-05-10T00:30:31.757 回答