Impedir solicitação dupla ajax ao usar onchange de entrada

O problema é quando você coloca uma caixa de pesquisa e deseja mostrar sugestões ao usuário após cada entrada. O navegador fará uma solicitação ajax sempre que o usuário pressionar a tecla.

Para evitar isso, você pode usar as funções setTimeout e clearTimeout.

var request = null;
$
("input[name=q]").on('keydown', function(e){
clearTimeout
(request);
that
= this;

request
= setTimeout(function(){
$
.get("/search", {q: $(that).val()}, function(resp){
console
.log(resp);
})
}, 300)
})