Javascript 使用viewmodel缓慢加载组合框项目
我的应用程序有一个带有三个组合框的表单。 comboboxs存储在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
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。