2010-08-19 6 views
0

J'utilise le deprecated autocomplete plugin (depuis que je suis en utilisant le jquery héritage lib 1.3.2).jQuery autocomplete demande de problème de mise en cache

Mon problème est que le plugin tente de saisie semi-automatique en cache les demandes. J'utilise une URL côté serveur pour renvoyer les résultats.

Tenir compte de ce scénario:

Keyword : Results 
i : ikea, iphone, ipod, ipad, iphone 4 
ip: iphone, ipod, ipad, iphone4 
iph: iphone, iphone 4 
ipho: iphone, iphone 4 

...

Vous voyez le problème, la première fois qu'il a obtenu 5 résultats - c'est la limite que j'ai mis au back-end, son retour 5 résultats seulement. La prochaine fois, il n'envoie pas de requête, il affine le résultat obtenu en première requête et ainsi de suite.

Comment puis-je faire le plugin autocomplete envoyer une demande à chaque fois que les changements d'entrée?

Voici mon code ...

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

J'essayé de placer le cacheLength à "1", mais cela ne fonctionne pas.

Quelqu'un peut-il m'aider ici?

Répondre

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

Il s'est avéré être une solution assez simple - la définition de cacheLength à 0 fait l'affaire.

dont je parlais l'explication documentation jusqu'à présent ...

Le nombre de résultats de la requête de back-end à stocker dans le cache. Si défini sur 1 (le résultat actuel ), aucune mise en cache ne se produira . Doit être> = 1.

De toute façon j'ai obtenu la solution désirée.

0

Vous n'avez pas besoin de désactiver la mise en cache, il est option pour désactiver sous-ensemble correspondant par exemple

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