Проблема с кешированием запросов автозаполнения jQuery

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

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


person vikmalhotra    schedule 19.08.2010    source источник


Ответы (2)


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

Оказалось, что это довольно простое решение — установка cacheLength на 0 делает свое дело.

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

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

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

person vikmalhotra    schedule 20.08.2010

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

$("#query").autocomplete(
    url,
    {
        matchSubset: false
    }
)
person Anurag Uniyal    schedule 22.11.2011