Jquery Exécuter le code 2 secondes après la dernière pression sur la touche

Je suis en train de travailler sur une fonction de recherche auto pour un site.

Il utilise de l'ajax pour la requête d'un api.

Pour le moment, après 3 caractères, il sera à la recherche sur chaque touche.

Ce que je veux, c'est

Décision1:
Utilisateur entre tes
2 secondes
recherche effectuée


Case2:
Utilisateur entre tes
1 seconde passe
utilisateur appuie sur t
2 secondes passent
la recherche est effectuée sur test


Case3:
Utilisateur entre tes
1 seconde passe
utilisateur appuie sur t
1.5 secondes passent
utilisateur appuie sur je
1.5 secondes passent
utilisateur appuie sur n
1.5 secondes passent
utilisateur appuie sur g
2 secondes passent
recherche effectuées sur le test

donc, comme vous pouvez le voir,
l'action de recherche n'est effectuée que lorsqu'il n'y a pas de touches(ou de la colle ect) dans les deux secondes qui suivent une pression sur une touche.

mon idée de base est de.

sur keydown
Appeler une fonction qui définit un délai d'attente,
de plus, la fonction définit une variable contenant la dernière entrée dans la zone de texte.
lorsque le délai expire, il vérifie la valeur dans la boîte pour voir si elle correspond à la valeur dans la variable.

Si elles correspondent alors il n'y a pas eu de changement.
Afin de faire de la recherche

Si ils ne puis ne rien faire, parce que le délai d'expiration de la clé suivante de la presse sera la suite à faire la même vérification.

Est-ce le seul ou le meilleur moyen pour ce faire?

source d'informationauteur Hailwood | 2010-12-06