2012-05-09 6 views
5

Ich verwendete die autoDestroy Eigenschaft eines Ladens. Um die Speicherressourcen zu bereinigen. Aber ich kann das nicht mehr in der API finden.Wie kann man Geschäfte in ExtJS 4.1 zerstören?

Ich fand EXTJSIV-4844 - Ext.data.Store autoDestroy config is missing in der 4.1 RC1 Bug Fixes aufgeführt (obwohl ich den Thread für diesen Fehler nirgendwo finden kann).

Jetzt in RC3 ist diese Konfiguration von der API weg und es ist nicht mehr in den Quelldateien.

Ich habe Ext.destroy für Ansichten verwendet, aber nie für Geschäfte. Wie die API die Ext.destroy-Methode here beschreibt, klingt wie folgt: "Diese Methode wurde für Widgets entwickelt, akzeptiert aber jedes Objekt und sieht, was es kann". - Mit anderen Worten, nicht sehr definitiv.

Weiß jemand zufällig, ob Ext.destroy für Speicher arbeitet und sie aus dem Speicher entfernt? Oder was ist die empfohlene Vorgehensweise?

Antwort

8

Ext.data.Store.destroyStore sieht wie die Methode aus, die Sie verwenden möchten. Es ist aus irgendeinem Grund privat (es zeigt nicht einmal in der Dokumentation, wenn show private aktiviert ist), aber es sieht so aus, als ob es die gleiche Funktionalität von 3.4's public Store.destroy http://docs.sencha.com/ext-js/3-4/#!/api/Ext.data.Store-method-destroy hat. In 4.x gibt es eine Store.destroy-Methode, aber das ist etwas völlig anderes und sollte nicht verwendet werden, um den Speicher aus dem Speicher zu zerstören. Hier ist die Quelle von 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; 
     } 
    } 
}, 
+0

das sieht gut aus, danke für Spotting – Geronimo

Verwandte Themen