2012-05-09 24 views
5

Tôi đã từng sử dụng thuộc tính autoDestroy của cửa hàng. Để làm sạch các tài nguyên bộ nhớ. Nhưng tôi không thể tìm thấy điều này trong API nữa.Làm thế nào để phá hủy các cửa hàng trong ExtJS 4.1?

Tôi tìm thấy EXTJSIV-4844 - Ext.data.Store autoDestroy config is missing được liệt kê trong số 4.1 RC1 Bug Fixes (mặc dù tôi không thể tìm thấy chuỗi cho lỗi đó ở bất kỳ đâu).

Hiện tại trong cấu hình RC3 đã biến mất khỏi API và không còn trong tệp nguồn nữa.

Tôi đã sử dụng Ext.destroy cho số lượt xem nhưng không bao giờ cho cửa hàng. Cách API mô tả phương thức Ext.destroyhere có vẻ như: "Phương pháp này được thiết kế cho các tiện ích nhưng sẽ chấp nhận bất kỳ đối tượng nào và xem nó có thể làm gì". - Nói cách khác, không phải rất dứt khoát.

Có ai biết nếu Ext.destroy hoạt động cho các cửa hàng và xóa chúng khỏi bộ nhớ? Hoặc cách được đề nghị để đi về điều này là gì?

Trả lời

8

Ext.data.Store.destroyStore trông giống như phương pháp bạn muốn sử dụng. Nó là riêng tư vì một số lý do (nó thậm chí không hiển thị trong tài liệu nếu hiển thị riêng tư được kiểm tra) nhưng có vẻ như nó có chức năng tương tự của công cộng Store.destroy 3.4 http://docs.sencha.com/ext-js/3-4/#!/api/Ext.data.Store-method-destroy. Trong 4.x có một phương thức Store.destroy nhưng đó là một cái gì đó hoàn toàn khác và không nên được sử dụng để phá hủy cửa hàng khỏi bộ nhớ. Đây là nguồn từ 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

có vẻ tốt, nhờ có đốm – Geronimo