2012-05-09 16 views
5

मैं एक स्टोर की autoDestroy संपत्ति का उपयोग करता था। स्मृति संसाधनों को साफ करने के लिए। लेकिन मुझे अब एपीआई में यह नहीं मिल रहा है।ExtJS 4.1 में स्टोर को कैसे नष्ट करें?

मुझे 4.1 RC1 Bug Fixes में सूचीबद्ध मिला (हालांकि मुझे कहीं भी उस बग के लिए धागा नहीं मिल रहा है)।

अब आरसी 3 में कॉन्फ़िगरेशन एपीआई से चला गया है और यह अब स्रोत फ़ाइलों में नहीं है।

मैंने विचारों के लिए Ext.destroy का उपयोग किया है लेकिन दुकानों के लिए कभी नहीं। जिस तरह से एपीआई Ext.destroy विधि here का वर्णन करता है, यह ऐसा लगता है: "यह विधि विजेट के लिए डिज़ाइन की गई है लेकिन यह किसी ऑब्जेक्ट को स्वीकार करेगी और देखें कि यह क्या कर सकता है"। - दूसरे शब्दों में, बहुत निश्चित नहीं है।

क्या किसी को पता है कि Ext.destroy स्टोर के लिए काम करता है और उन्हें स्मृति से हटा देता है? या इसके बारे में जाने का अनुशंसित तरीका क्या है?

उत्तर

8

Ext.data.Store.destroyStore उस विधि की तरह दिखता है जिसका आप उपयोग करना चाहते हैं। यह किसी कारण से निजी है (यदि दस्तावेज़ दिखाया गया है तो यह दस्तावेज़ों में भी दिखाई नहीं देता है) लेकिन ऐसा लगता है कि इसमें 3.4 के सार्वजनिक स्टोर.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; 
     } 
    } 
}, 
+0

जो अच्छा लग रहा है, स्पॉटिंग के लिए धन्यवाद – Geronimo

संबंधित मुद्दे