gpt4 book ai didi

javascript - 如何消除延迟并修复 dojo FilteringSelect 小部件中的部分匹配搜索?

转载 作者:行者123 更新时间:2023-11-30 17:17:45 24 4
gpt4 key购买 nike

我在使 dijit/form/FilteringSelect 小部件自行运行时遇到问题。我怀疑我的选项组合刚刚好,但我似乎无法找到正确的模式。

我的数据源是一个书名列表,我希望用户能够通过下拉菜单并选择一个选项或输入部分名称并获得匹配项来使用小部件。棘手的部分是在输入值时发生的过滤器需要在两端都匹配通配符,因为输入的词很可能是名称中的第二个词。

我的问题是设置适当的搜索延迟以及搜索发生后继续键入的内容。首先,只要您可以继续输入,默认的 200 毫秒搜索延迟就可以正常工作,但是当 queryExpr 设置为 *${0}* 时,这似乎被打破了。当您继续输入时,您会从当前匹配项的前缀开始,而不仅仅是您目前输入的内容。

我让它可用的唯一方法是设置一个更大的延迟(500 毫秒)并希望人们不要犯很多打字错误。这会产生延迟下拉菜单的不良影响。

    var books_widget = new FilteringSelect({
placeHolder: "Kitap",
store: book_list_store,
style: 'width: 12em',
searchAttr: "name",
autocomplete: false,
highlightMatch: 'first',
ignoreCase: true,
queryExpr: '*${0}*',
searchDelay: 500
});
books_widget.placeAt(wrapper_node);

有没有...

  1. ...有什么方法可以将 searchDelay 与鼠标触发的下拉菜单分离,从而使 UI 不会出现毫无意义的延迟?

  2. ...安排设置的正确方法,以便在输入部分匹配项时,搜索功能不会破坏现有条目,您可以继续输入扩展模式的字符?

最佳答案

您不必使用搜索延迟。您得到的行为是因为 autoComplete 属性设置为 true
但是,在您的配置中,您使用的是 autocomplete,您应该使用大写的“C”。

我想这可以解决这两个问题,因为您的下拉菜单将不再延迟,并且当找到部分匹配项时,它将不再覆盖您当前的文本。

searchDelay 属性通常用于消除存储访问(可能还有 REST 访问)。当您在没有搜索延迟的情况下输入“hello world”时,将查询商店以了解每次更改,因此:

h
he
hel
...
hello world

如果您使用 searchDelay 去抖动它,那么它只会在上次更改后 500 毫秒访问您的商店,因此如果您键入的速度足够快,它只会用它来查询 “ Hello World ”

关于javascript - 如何消除延迟并修复 dojo FilteringSelect 小部件中的部分匹配搜索?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25762046/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com