0

我正在使用已弃用的自动完成插件(因为我使用的是旧版 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”,但这不起作用。

有人可以在这里帮我吗?

4

2 回答 2

4
$("#query").autocomplete(
    "/getSuggestions/", {
        autoFill: true,
        selectFirst: false,
        cacheLength: 0
    });

结果证明这是一个非常简单的解决方案 - 将 cacheLength 设置为 0 就可以了。

到目前为止,我一直在参考文档中的解释......

要存储在缓存中的后端查询结果的数量。如果设置为 1(当前结果),则不会发生缓存。必须 >= 1。

无论如何,我得到了想要的解决方案。

于 2010-08-20T06:35:29.590 回答
1

您不需要禁用缓存,可以选择禁用子集匹配,例如

$("#query").autocomplete(
    url,
    {
        matchSubset: false
    }
)
于 2011-11-22T22:31:52.250 回答