代码之家  ›  专栏  ›  技术社区  ›  vikmalhotra

jQuery自动完成请求缓存问题

  •  0
  • vikmalhotra  · 技术社区  · 15 年前

    我用的是 deprecated autocomplete plugin

    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”,但是没有用。

    有人能帮帮我吗?

    2 回复  |  直到 15 年前
        1
  •  4
  •   vikmalhotra    15 年前
    $("#query").autocomplete(
        "/getSuggestions/", {
            autoFill: true,
            selectFirst: false,
            cacheLength: 0
        });
    

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

    documentation 直到现在。。。

    要删除的后端查询结果数 存储在缓存中。 如果设置为1 当前结果), 不会有缓存 发生 . 必须大于等于1。

    不管怎样,我得到了想要的解决方案。

        2
  •  1
  •   Anurag Uniyal    13 年前

    您不需要禁用缓存,有一个选项可以禁用子集匹配,例如。

    $("#query").autocomplete(
        url,
        {
            matchSubset: false
        }
    )
    
    推荐文章