【发布时间】:2012-11-28 05:28:03
【问题描述】:
我有一个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']
})
}
}
虽然我认为问题实际上取决于正在执行的查询和正在加载的数据。
【问题讨论】: