onAddressSearch: function() {
this.myMask = new Ext.LoadMask(Ext.getBody(), {msg:"Поиск..."});
this.myMask.show();
var search_address = Ext.getCmp('search').value;
this.store.clearFilter();
this.on("filterchange", this.storeDataChange, this);
this.store.filter([
{
property: 'ADRESS',
value: search_address,
anyMatch: true,
caseSensitive: false
},
]);
},
storeDataChange: function(store, filters, e) {
var task = new Ext.util.DelayedTask(function() {
Ext.getBody().unmask();
});
task.delay(1000);
}
Имеется текстовое поле, в которое вводится значение, по которому фильтруется store, т.к. данных и может занимать продолжительное время, хочу добавить loadmask на время загрузки, но отрабатывает не так, как ожидаю. Код выше уже не изначальный вариант, а одна из попыток, loadmask активирую до фильтрации, ожидаю, что он снимется по событию filterchange по ее окончанию, но по факту сначала он задумывается(фильтрует), а под конец показывается сплешер и все, так происходит начиная со второго поиска, первый раз как надо отрабатывает.
delay добавил. т.к. если сразу делать unmask, то его не видно ни разу
Основные этапы разработки сайта для стоматологической клиники
Продвижение своими сайтами как стратегия роста и независимости