Javascript 使用viewmodel缓慢加载组合框项目

Javascript 使用viewmodel缓慢加载组合框项目,javascript,extjs,combobox,viewmodel,extjs5,Javascript,Extjs,Combobox,Viewmodel,Extjs5,我的应用程序有一个带有三个组合框的表单。 comboboxs存储在ViewModel中 Ext.define('app.ComboboxsModel', { extend: 'Ext.app.ViewModel', alias: 'viewmodel.comboboxsmodel', stores: { storeA:{ model:'AModel', autoLoad:true, actionMet

我的应用程序有一个带有三个组合框的表单。 comboboxs存储在ViewModel中

 Ext.define('app.ComboboxsModel', {
 extend: 'Ext.app.ViewModel',
 alias: 'viewmodel.comboboxsmodel',
 stores: {
        storeA:{
            model:'AModel',
            autoLoad:true,
            actionMethods:{
                    read:'POST'
            },
            proxy: {
                type: 'ajax',
                url:  'php/url',
                reader:{
                    type:'json',
                    rootProperty: 'data',
                    successProperty: 'success'
                }
            }
        },

        storeB:{
            model:'BModel',
            autoLoad:true,
            actionMethods:{
                    read:'POST'
            },
            proxy: {
                type: 'ajax',
                url:  'php/url',
                reader:{
                    type:'json',
                    rootProperty: 'data',
                    successProperty: 'success'
                }
            }
        },

        storeC:{
            ...
        }
});
它起作用了。数据被加载到组合框中

问题是装载速度很慢。 从最后一个组合框加载数据大约需要5秒钟

如果我没有在viewmodel中声明存储,而是将这些存储放在app store文件夹中,并在aplication.js文件中引用它们,则会按照预期工作,速度更快

但是,我打算使用ViewModel

 Ext.define('app.ComboboxsModel', {
 extend: 'Ext.app.ViewModel',
 alias: 'viewmodel.comboboxsmodel',
 stores: {
        storeA:{
            model:'AModel',
            autoLoad:true,
            actionMethods:{
                    read:'POST'
            },
            proxy: {
                type: 'ajax',
                url:  'php/url',
                reader:{
                    type:'json',
                    rootProperty: 'data',
                    successProperty: 'success'
                }
            }
        },

        storeB:{
            model:'BModel',
            autoLoad:true,
            actionMethods:{
                    read:'POST'
            },
            proxy: {
                type: 'ajax',
                url:  'php/url',
                reader:{
                    type:'json',
                    rootProperty: 'data',
                    successProperty: 'success'
                }
            }
        },

        storeC:{
            ...
        }
});
是否有任何方法可以使用viewmodel更快地或在加载表单之前加载存储(comboboxs项)

编辑:

组合框小提琴:

评论:

更好地解释这个问题:

问题不在这个阶段,而是当我在网格中编辑一条记录,并希望将记录数据加载到表单comboboxs(config“name”)中时

如果配置值字段“name\u id”被“name”替换,则加载速度更快,但仍然较慢

然而,在服务器端(PHP),对于ComboBox,我最好使用ids(主键)


你能帮我解决一下这个问题吗?在我们的项目中,我们定义了虚拟机上的所有存储,其中一些包含超过10个存储,并且加载速度很快。感谢您的回答。我现在注意到我没有很好地解释我的问题。对不起,我用各种组合框编辑了代码,这些组合框从存储中加载数据。请看评论。问题不在这个阶段,而是当我在网格中编辑一条记录,并希望将记录数据加载到表单comboboxs(config“name”)中时。如果将config valudeField“name_id”替换为“name”,则加载速度更快,但仍然较慢。但是,在服务器端(PHP),对于comboboxs,我最好使用id。