2010-08-19 3 views
0

deprecated autocomplete plugin (기존 jquery lib 1.3.2를 사용하고 있기 때문에)을 사용하고 있습니다.jQuery 자동 완성 요청 캐싱 문제

내 문제는 자동 완성 플러그인이 요청을 캐시하려고한다는 것입니다. 결과를 반환하는 서버 쪽 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 
    }); 

나는 "1",하지만이 작동하지 않습니다하는 cacheLength을 설정했습니다.

누군가 나를 도와 줄 수 있습니까?

답변

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

cacheLength를 0으로 설정하면 매우 간단한 해결책으로 밝혀졌습니다.

지금까지 documentation의 설명을 언급했다 ...

캐시에 저장소 백엔드 쿼리 결과의 수입니다. ( 현재 결과)로 설정하면 캐싱이 없음 이 발생합니다. > = 1이어야합니다.

어쨌든 나는 원하는 해결책을 가지고 있습니다.

0

캐싱을 사용 중지 할 필요가 없습니다. 하위 집합 일치를 사용 중지하는 옵션이 있습니다. 예 :

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