我要加载的商店需要花费大量时间进行身份验证和获取数据(巨大),我需要根据条件从商店中选择一个字段作为默认值。由于商店需要花费大量时间(8-10秒)并且已经渲染了UI,因此设置值无处不在,这很烦人。
我的商店定义为:
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);
在执行此逻辑之前,我该怎么做才能延迟渲染UI?
答案 0 :(得分:0)
我认为您可以在Ext.app.Application init()
方法
应用程序启动时调用的模板方法。在Ext.app.Application的启动函数执行之前调用它,因此在创建视口之前提供一个钩点来运行任何代码。
通过异步ajax请求(使用带async: false
选项的Ext.Ajax requiest()
方法)并手动将数据加载到商店中。
在我的应用程序中加载所有必要的数据时,我使用掩码"正在加载......"文本并在所有准备工作完成后在Ext.app.Application init()
中将其删除。