延迟呈现UI,直到存储加载到ExtJ中

时间:2018-01-04 05:37:36

标签: javascript user-interface extjs rendering store

我要加载的商店需要花费大量时间进行身份验证和获取数据(巨大),我需要根据条件从商店中选择一个字段作为默认值。由于商店需要花费大量时间(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?

1 个答案:

答案 0 :(得分:0)

我认为您可以在Ext.app.Application init()方法

中手动加载所有必需的数据
  

应用程序启动时调用的模板方法。在Ext.app.Application的启动函数执行之前调用它,因此在创建视口之前提供一个钩点来运行任何代码。

通过异步ajax请求(使用带async: false选项的Ext.Ajax requiest()方法)并手动将数据加载到商店中。

在我的应用程序中加载所有必要的数据时,我使用掩码"正在加载......"文本并在所有准备工作完成后在Ext.app.Application init()中将其删除。