Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

Leonardo Dias_131708

Sistema de Busca

Recommended Posts

Fala pessoal,

 

Estou incluindo no meu site um sistema de buscas, e fiz uma função para que assim que o usuário digitar a terceira letra na caixa de busca já inicia a busca e já vai apresentando, mas ou menos o esquema usado pelo site do Google.

 

 

function loadSearch(obj)
{
	if (obj.value && obj.value.length > 2) 
          		 loadPage('<?php echo Config::$PATH;?>busca/busca_alt/','altSearch','SEARCH=' + obj.value,false);
	else 
		removeAltSearch(obj);
}

 

Ficou meio "gambiarra luzitana", o obj.value.length inicia com o valor 0, ou seja, na 3ª letra ele vai iniciar o load da página de busca com a palavra digitada.

 

Dessa forma está muito ruim e lento, pois se eu digitio Radiologia por exemplo, ele vai começar a pesquisar desde a 3ª letra, ex: Rad, Radi, Radio, Radiol, Radiolo, Radiolog, Radiologi e Radiologia, ou seja, esta sendo executada 8 pesquisas ao invés de 1 só da palavra toda.

 

Eu queria saber alguma forma dele iniciar o load da página somente quando o usuário parar de digitar por uns 3 segundos, oque siginifica que ele já digitou a palavra inteira.

 

abraços,

Léo

Compartilhar este post


Link para o post
Compartilhar em outros sites

você pode aguardar com um setTimeout().

cada vez q o usuário digitar algo, você zera o setTimeout() com um clearTimeout()

Compartilhar este post


Link para o post
Compartilhar em outros sites

William,

 

Deixa eu ver se eu entendi, fiz dessa forma, mas parece que não rolou:

 

function loadSearch(obj){
	if (obj.value && obj.value.length > 2) {
                        loadPage('<?php echo Config::$PATH;?>busca/busca_alt/','altSearch','SEARCH=' + obj.value,false); 
	}else{
           removeAltSearch(obj);
               }
}
function altSearch(obj){
      setTimeout(function(){loadSearch(obj)}, 170);
             clearTimeout();
      }

 

Oque eu to fazendo errado? Pelo menos entrando na função AltSearch está, confirmei pelo firebug.

 

abraços,

Léo

você pode aguardar com um setTimeout().

cada vez q o usuário digitar algo, você zera o setTimeout() com um clearTimeout()

Compartilhar este post


Link para o post
Compartilhar em outros sites

Vadio,

 

Esse esquema me pareceu meu estranho, não consegui adaptá-lo ao meu javascript.

 

com jquery eu não conseguiria fazer mais fácilmente?

 

abraços,

Léo

 

 

 

 

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.