Как уничтожить магазины в ExtJS 4.1?

Раньше я использовал свойство autoDestroy магазина. Чтобы очистить ресурсы памяти. Но я больше не могу найти это в API.

Я нашел EXTJSIV-4844 - Ext.data.Store autoDestroy config is missing в списке 4.1. Исправления ошибок RC1 (хотя я нигде не могу найти ветку для этой ошибки).

Теперь в RC3 эта конфигурация удалена из API и больше не находится в исходных файлах.

Я использовал Ext.destroy для просмотров, но никогда для магазинов. Как API описывает метод Ext.destroy здесь звучит так: "Этот метод разработан для виджетов, но он примет любой объект и посмотрит, что он может сделать". - Другими словами, не очень категорично.

Кто-нибудь случайно не знает, работает ли Ext.destroy для магазинов и удаляет их из памяти? Или какой рекомендуемый способ сделать это?


person egerardus    schedule 09.05.2012    source источник


Ответы (1)


Ext.data.Store.destroyStore выглядит как метод, который вы хотите использовать. По какой-то причине он является приватным (он даже не отображается в документах, если установлен флажок «Показать приватный»), но похоже, что он имеет ту же функциональность, что и общедоступный Store.destroy 3.4 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;
        }
    }
},
person pllee    schedule 10.05.2012