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, то его не видно ни разу
Как развивать веб-проекты в 2026 году: технологии, контент E-E-A-T и факторы доверия
Современные инструменты для криптотрейдинга: как технологии помогают принимать решения
Апостиль в Лос-Анджелесе без лишних нервов и бумажной волокиты
Основные этапы разработки сайта для стоматологической клиники