Tenho um autocomplete que funciona perfeitamente no JSF 2. O problema está na performance da pesquisa pois não quero pesquisar a cada tecla digitada. Começo a pesquisar a partir do 4º caracter, por exemplo se o usuário digitar “pedro” o sistema fará duas buscas uma para “pedr” e outra para “pedro” e quero somente uma busca seja feita (a menos que usuário deseje buscar somente por “pedr”).
Pensei em fazer um código que lê de tempos em tempos o estado do campo de texto, porém isso vai pesar o sistema.
Alguma sugestão?
Obs.: Sei que tem um monte de dúvidas sobre autocomplete mas não achei a resposta para o meu problema.
nao sei qual implementação que vc ta usando do JSF, mas se for o primefaces, no componente autocomplete tem a propriedade queryDelay, que vc pode setar de qto em qto tempo ai ser disparada a acao ao servidor.
Eu estou usando o icefaces, e achei uma propriedade do ice:selectInputText chamada options="{frequency:XX}" onde XX é o delay em segundos para chamar o método do valueChangeListener.
Em relação a pesquisa do auto complete, como é feito essa pesquisa? a cada caractere inserido é disparado uma procedure no banco? pois como estou imaginando aqui isso n traria um fluxo muito alto na rede e um alto processamento no banco?