我正在使用deprecated autocomplete plugin(因为我正在使用旧版jquery lib 1.3.2)。
我的问题是自动完成插件尝试缓存请求。我正在使用服务器端URL返回结果。
考虑这种情况:
Keyword : Results
i : ikea, iphone, ipod, ipad, iphone 4
ip: iphone, ipod, ipad, iphone4
iph: iphone, iphone 4
ipho: iphone, iphone 4
...
你看到问题,第一次得到5个结果 - 这是我在后端设置的限制,它只返回5个结果。下一次,它不发送请求,它会优化它在第一次请求中得到的结果集,等等。
如何在每次输入更改时使自动完成插件发送请求?
这是我的代码......
$("#query").autocomplete(
"/getSuggestions/", {
autoFill: true,
selectFirst: false,
cacheLength: 1
});
我尝试将cacheLength设置为“1”,但这不起作用。
有人可以帮助我吗?
答案 0 :(得分:4)
$("#query").autocomplete(
"/getSuggestions/", {
autoFill: true,
selectFirst: false,
cacheLength: 0
});
事实证明这是一个非常简单的解决方案 - 将cacheLength设置为0可以解决问题。
到目前为止我在documentation中提到的解释......
后端查询结果的数量 存储在缓存中。 如果设置为1 ( 当前结果),没有缓存 发生即可。必须是> = 1。
无论如何,我得到了理想的解决方案。
答案 1 :(得分:1)
您不需要禁用缓存,可以选择禁用子集匹配,例如
$("#query").autocomplete(
url,
{
matchSubset: false
}
)