Задержка рендеринга пользовательского интерфейса до загрузки магазина в ExtJs

1

Магазин, который я хочу загрузить, занимает значительное время при проверке подлинности и извлечении данных (огромное количество), и мне нужно выбрать одно поле из хранилища по умолчанию в соответствии с условием. Поскольку хранилище занимает много времени (8-10 с), и пользовательский интерфейс уже отображен, поэтому установка значения появляется из ниоткуда, что раздражает.

Мой магазин определяется как:

var profileStore = Ext.create('Ext.data.Store', {
        id: 'profileStore ',
        method: 'GET',
        proxy: new Ext.data.HttpProxy({
            url: url,
            reader: new Ext.data.JsonReader({
                name: 'name',
                fields: 'fields'
            })
        })
    });

и загрузка происходит следующим образом:

profileStoreData = profileStore.load({
            callback: function(cmp) {
               //logic for setting default field
            }
        });
viewModel.set('profileStoreStored', profileStoreData);

что я могу сделать, чтобы отложить отображение пользовательского интерфейса до тех пор, пока эта логика не будет выполнена?

Теги:
extjs
user-interface
rendering
store

1 ответ

0

Я думаю, что вы можете вручную загрузить все необходимые данные в метод Ext.app.Application init()

Метод шаблона, который вызывается при загрузке вашего приложения. Он вызывается до того, как запускается функция запуска Ext.app.Application, поэтому дает точку захвата для запуска любого кода до создания вашего видового экрана.

через асинхронный запрос ajax (используя метод Ext.Ajax requiest() с опцией async: false) и загружать данные в ваш магазин вручную.

В моем приложении при загрузке всех необходимых данных я использую маску с текстом "Загрузка..." и удаляю ее в Ext.app.Application init() когда все приготовления закончены.

Ещё вопросы

Сообщество Overcoder
Наверх
Меню