Antes de fazer algo mais complicado, você considerou não enviar a solicitação até que o usuário pare de digitar por pelo menos um determinado intervalo de tempo (digamos, 1 segundo)? Isso deve reduzir drasticamente o número de solicitações feitas com pouco esforço de sua parte.