Проблема с кэшированием автозаполнения jQuery - PullRequest
0 голосов
/ 19 августа 2010

Я использую устаревший плагин для автозаполнения (поскольку я использую устаревшую версию 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", но это не сработало.

Может кто-нибудь помочь мне здесь?

Ответы [ 2 ]

4 голосов
/ 20 августа 2010
$("#query").autocomplete(
    "/getSuggestions/", {
        autoFill: true,
        selectFirst: false,
        cacheLength: 0
    });

Это оказалось довольно простым решением - установка cacheLength на 0 делает свое дело.

Я имел в виду объяснение в документации до сих пор ...

Количество результатов внутреннего запроса в хранить в кеше. Если установлено значение 1 ( текущий результат), кэширование не будет случается . Должно быть> = 1.

В любом случае, я получил желаемое решение.

1 голос
/ 23 ноября 2011

Вам не нужно отключать кэширование, есть возможность отключить сопоставление подмножеств, например,

$("#query").autocomplete(
    url,
    {
        matchSubset: false
    }
)
...