我曾经使用商店的autoDestroy
财产。清理内存资源。但是我再也找不到这个了。
我发现4.1 RC1 Bug Fixes中列出了EXTJSIV-4844 - Ext.data.Store autoDestroy config is missing
(虽然我无法在任何地方找到该错误的主题)。
现在在RC3中,配置已从API中消失,并且它不再存在于源文件中。
我已将Ext.destroy
用于视图,但从未用于商店。 API描述Ext.destroy
方法here的方式听起来像:“此方法是为小部件设计的,但它会接受任何对象,看看它能做什么”。 - 换句话说,不是很明确。
是否有人碰巧知道Ext.destroy
是否适用于商店并将其从内存中移除?或者推荐的方法是什么?
答案 0 :(得分: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;
}
}
},