2010-08-19 51 views
0

我正在使用deprecated autocomplete plugin(因爲我使用的是舊版jQuery lib 1.3.2)。jQuery自動完成請求緩存問題

我的問題是自動完成插件試圖緩存請求。我正在使用服務器端網址來返回結果。

考慮這種情況:

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
$("#query").autocomplete(
    "/getSuggestions/", { 
     autoFill: true, 
     selectFirst: false, 
     cacheLength: 0 
    }); 

事實證明,這是一個相當簡單的解決方案 - 將cacheLength設置爲0就行了。

我是指在documentation的解釋至今...

後端查詢結果 存儲在高速緩存的數量。 如果設置爲1(當前結果爲 ),沒有緩存將發生 發生。必須> = 1.

無論如何,我得到了理想的解決方案。

0

您不需要禁用緩存,可以選擇禁用子集匹配,例如,

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