Avant de faire quoi que ce soit de plus compliqué, avez-vous envisagé de ne pas envoyer la requête tant que l'utilisateur n'a pas arrêté de taper pendant au moins un certain intervalle de temps (par exemple, 1 seconde) ? Cela devrait réduire considérablement le nombre de demandes effectuées avec peu d'efforts de votre part.