J’utilise le code suivant dans le cadre d’un script de saisie semi-automatique pour éviter de bash le serveur à chaque frappe:
var that = this; textInput.bind("keyup", function() { clearTimeout(that.timer); that.timer = setTimeout (that.doStuff(), 2000); });
Malheureusement, cela n’efface pas les anciens. Ils exécutent toujours tous.
Est-ce que quelqu’un sait ce que je manque?
Merci!
Vous voulez probablement utiliser:
that.timer = setTimeout (that.doStuff, 2000);
au lieu de:
that.timer = setTimeout (that.doStuff(), 2000);
Sinon, doStuff sera appelé immédiatement.