在ExtJS4.2中,有可能有一个带有两个存储区的组合框吗?

在ExtJS4.2中,有可能有一个带有两个存储区的组合框吗?,extjs4,extjs4.1,extjs4.2,extjs-mvc,Extjs4,Extjs4.1,Extjs4.2,Extjs Mvc,我必须做一个实时搜索,在谷歌上花了几个小时后,我决定在这里问是否有人有想法,我如何在ExtJS中进行实时搜索(使用或不使用combobox),但是(棘手的部分)。我有两个数据集。一个数据集来自一个URL,第二个数据集来自另一个URL 我不知道当我在搜索框中键入某个内容以首先返回小数据集时,以及当第二个数据集(大得多)完全加载时,如何开始或如何发出请求 例如,当我在第一个块的搜索字段中键入“computer”时,在第二个块中显示一些与计算机相关的内容(第一个请求几乎没有数据),然后在第二个块中显示

我必须做一个实时搜索,在谷歌上花了几个小时后,我决定在这里问是否有人有想法,我如何在ExtJS中进行实时搜索(使用或不使用combobox),但是(棘手的部分)。我有两个数据集。一个数据集来自一个URL,第二个数据集来自另一个URL

我不知道当我在搜索框中键入某个内容以首先返回小数据集时,以及当第二个数据集(大得多)完全加载时,如何开始或如何发出请求

例如,当我在第一个块的搜索字段中键入“computer”时,在第二个块中显示一些与计算机相关的内容(第一个请求几乎没有数据),然后在第二个块中显示更多与计算机相关的内容(第二个请求很多数据)

我需要这个东西,因为在我的一个请求中,我有超过10k的产品,我不想让用户w8,直到请求完成,并显示数据较少的另一个请求。直到第一步完成


我忘了提到我想同时发出两个异步请求。

如果数据非常重要,您可以在应用程序启动时尝试加载内存

在应用程序启动()时创建所需的存储,加载数据并在任何地方使用。您也可以在controller launch()上对控制器引用执行此操作,并根据需要对其进行颗粒化

Ext.application({
    name: 'Blog',
    models: ['Post', 'Comment'],
    controllers: ['Posts', 'Comments'],

    launch: function() {
     Ext.define('User', {
         extend: 'Ext.data.Model',
         fields: [
             {name: 'firstName', type: 'string'},
             {name: 'lastName',  type: 'string'},
             {name: 'age',       type: 'int'},
             {name: 'eyeColor',  type: 'string'}
         ]
     });

     Ext.create('Ext.data.Store', {
         model: 'User',
         storeId: 'userStore',
         proxy: {
             type: 'ajax',
             url: '/users.json',
             reader: {
                 type: 'json',
                 root: 'users'
             }
         },
         autoLoad: true
     });    }

});

我对这类问题的解决方案是:

创建仅用于组合框内容的存储

当两个“源”存储中的一个加载数据时,它们将记录推入组合存储。 您还可以自动获得记录之间的引用,因此如果源存储1或2中的记录被删除,它也会消失在combostore中,就像魔术一样消失在combobox中!这是将数据加载到另一个存储区的关键:


致以最诚挚的问候,希望能有所帮助,如果您需要有关此解决方案的进一步建议/信息,请写信。

您可以尝试在选择数据的位置修改解析数据。这只是一个想法,您可以限制您解析的数据(首先只需将限制设置为1到10行,并且您可以插入combobox的附加行,您可以根据需要设置该行的值(例如text:more..;value:-1)当用户选择此选项时,您可以设置从第11行到长度数据末尾的限制选项,我对您真正要求的操作感到有点困惑。首先,您说“第二个块在请求结束时向我显示更多与计算机相关的内容”然后你说同时和异步。那是哪一个呢?你希望结果在两个请求的一个列表中,还是在两个不同的列表中?在两个不同的列表中我理解,但如果数据非常大,这会减慢我的应用程序的速度:-我想以某种方式发出两个请求,因为主要问题是性能,这就是原因对于2个数据集,例如1.10k产品和2.100产品,在加载第一个之前,第二个数据集将已经存在。(对不起,如果您不理解,我的英语很差)简而言之:2个相同组合框的请求1将加载快1将同时加载慢:)我理解您的情况。我相信10k的信息对于现代机器来说是微不足道的。您必须尝试此解决方案,以了解在应用程序启动时加载数据是否会显著降低应用程序性能。这只是一个比较时间的问题:初始加载的时间和2个请求的时间给了一个机会。这对我很有用。你是说当我的应用程序加载所有数据,然后在ComboBox中搜索时使用它?:-?我的另一个问题是,产品是按用户类型划分的,所以如果有100个用户,我必须加载100x10k,所以在应用程序启动时要加载大量数据。