Я понимаю, что это старый вопрос, но хотел немного лучше документировать для тех, кто найдет этот ответ в будущем.
Осторожно при добавлении прослушивателя загрузки в магазин.Если вы используете load listeners, вы должны обязательно включить single: true, чтобы он самоустранился.Если вы не избавляетесь от прослушивателя, это становится «утечкой памяти» в вашей программе, потому что каждый раз, когда вызывается хранилище, добавляется еще один прослушиватель, увеличивая количество элементов, которые сработает загрузчик, и увеличивая объем используемой памяти.
Более чистый способ справиться с этим - использовать обратный вызов для события загрузки
store.getProxy().extraParams = {
WI: Ext.getCmp('transferManagerMain').MenuID,
UID: Ext.getCmp('transferManagerMain').UID,
companykey: obj.$widgetRecord.data.CompanyKey,
transferid: obj.$widgetRecord.data.TransferID
};
store.load({
callback: function (records, operation, success) {
var Tier2PayrollWdw = Ext.create('object');
var responseJson = JSON.parse(operation.getResponse().responseText);
var warnlinArr = responseJson.warnlines;
Ext.fireEvent('setDataViewErrWarnLineArr', warnlinArr);
Tier2PayrollWdw.setWidth(Ext.getBody().getViewSize().width - 300);
Tier2PayrollWdw.setHeight(Ext.getBody().getViewSize().height - 300);
Tier2PayrollWdw.setTitle('Data View - ' +
obj.$widgetRecord.get('OriginalFileName') + ' Transfer Date: ' +
Ext.util.Format.date(obj.$widgetRecord.get('TransferTime'), 'm/d/Y'));
Tier2PayrollWdw.show();
}
});
Обратный вызов не продолжает добавлять прослушиватели.