我有一个remote
组合框,允许在用户输入时进行过滤。我的问题是,当用户键入时,后来的搜索比早期的搜索返回得更快(由于更精细),但是当早期的搜索最终返回时被替换。也就是说,即使用户输入了更精确的搜索,他们也会看到更早的、不那么精确的搜索的结果。
我不知道这里的错误是否在于组合框或其内部存储(或我: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']
})
}
}
虽然我认为这个问题实际上取决于正在进行的查询和正在加载的数据。