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 に答える