ExtJS 3.4-连续组合框搜索/存储重新加载

ExtJS 3.4-连续组合框搜索/存储重新加载,extjs,combobox,Extjs,Combobox,我有一个远程组合框,可以在用户输入时进行过滤。我的问题是,随着用户类型的增加,后期搜索返回的速度会比早期搜索更快,这是因为它更加精确,但当早期搜索最终返回时,就会被替换。也就是说,即使用户输入了更精确的搜索,他们也会看到更早、更不精确的搜索结果 我不知道这里的错误是否在于combobox或其内部存储或me:p,但在我看来,其中一个可能应该在发出新请求后忽略对任何旧请求的响应 我很惊讶没有发现任何关于其他人发生这种情况的信息。我本以为上述情况——键入并不断改进搜索,从而加快查找速度——会相当普遍。

我有一个远程组合框,可以在用户输入时进行过滤。我的问题是,随着用户类型的增加,后期搜索返回的速度会比早期搜索更快,这是因为它更加精确,但当早期搜索最终返回时,就会被替换。也就是说,即使用户输入了更精确的搜索,他们也会看到更早、更不精确的搜索结果

我不知道这里的错误是否在于combobox或其内部存储或me:p,但在我看来,其中一个可能应该在发出新请求后忽略对任何旧请求的响应

我很惊讶没有发现任何关于其他人发生这种情况的信息。我本以为上述情况——键入并不断改进搜索,从而加快查找速度——会相当普遍。不过,老实说,我真的不知道该找什么。此外,可能有一个简单的配置选项,我在文档中遗漏了这个选项

我意识到我可以使用minChars和queryDelay来消除这个问题,但事实是,它仍然有发生的可能性

还有其他人解决了这个问题吗

编辑: 根据要求,显示此行为的组合框示例如下:

{
    xtype: 'combo',
    mode: 'remote',

    pageSize: 300, 
    minChars: 3,
    queryDelay: 200,
    pageSize: 10,

    hideTrigger: true,
    selectOnFocus: true,
    enableKeyEvents: true,
    typeAhead: false,
    triggerAction: 'all',
    forceSelection: true,
    listEmptyText: 'No results',

    valueField: 'id',
    displayField: 'value',
    store: {
        url: '<url>',
        reader: new Ext.data.JsonReader({
            root: 'rows',
            totalProperty: 'totalCount',
            fields: ['id', 'value']
        })
    }
}

尽管我认为这个问题实际上取决于正在进行的查询和正在加载的数据。

如果您能提供您尝试过的代码,那将是非常有用的

您是否正在使用autoLoad:true加载您的商店, 或者使用ajax将本地数据加载到变量中
可能是数据被追加,而不是加载到存储中。

事实证明,这是Ext JS 3.4.0的一个问题,3.4.1解决了这个问题。

我为显示该行为的组合框添加了代码。我没有使用您提到的任何一种方法-只有在用户开始键入时才会加载数据。未追加数据-如果在发出另一个查询之前等待每个查询返回,则所有查询都会按预期工作。但是,如果同时发出多个查询(例如,在组合框中键入、优化搜索时),则稍后和较快的查询有可能在较早和较慢的查询之前返回-这就是问题出现的时候。