1

我有一个remote组合框,允许在用户输入时进行过滤。我的问题是,当用户键入时,后来的搜索比早期的搜索返回得更快(由于更精细),但是当早期的搜索最终返回时被替换。也就是说,即使用户输入了更精确的搜索,他们也会看到更早的、不那么精确的搜索的结果。

我不知道这里的错误是否在于组合框或其内部存储(或我:P),但在我看来,其中一个可能应该忽略对任何较旧请求的响应,一旦他们发出了新的一个。

我很惊讶没有发现其他人发生这种情况的任何信息。我会认为上述情况 - 键入并不断完善搜索,从而加快查找速度 - 会相当普遍。不过,说实话,我真的不知道要搜索什么。此外,我在文档中错过了一个简单的配置选项来实现这种效果。

我意识到我可以解决这个问题minCharsqueryDelay很大程度上消除这个问题,但事实仍然是它仍然有可能发生。

有没有其他人已经/解决了这个问题?

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

{
    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']
        })
    }
}

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

4

2 回答 2

0

如果您可以提供您尝试过的代码,那将会很有帮助。

  1. 您是否使用 autoLoad:true 加载您的商店,
  2. 或使用 ajax 加载到变量中的本地数据

可能是数据被附加而不是加载到存储中。

于 2012-11-28T16:00:30.157 回答
0

原来这是 Ext JS 3.4.0 的一个问题,在 3.4.1 中已修复。

于 2012-12-03T01:13:36.227 回答