jQuery: Feu mousemove événements de moins en moins souvent

J'essaie de trouver un moyen propre à agréger mousemove des événements afin que je m'assurer que mon code est appelée, mais seulement une fois tous les 250 à 300 millisecondes.

J'ai pensé à utiliser quelque chose comme ce qui suit, mais je me demandais si il y avait un meilleur modèle, ou quelque chose de jQuery offre qui fera la même chose:

var mousemove_timeout = null;

$('body').mousemove(function() {
  if (mousemove_timeout == null) {
    mousemove_timeout = window.setTimeout(myFunction, 250);
  }
});

function myFunction() {
  /*
   * Run my code...
   */

  mousemove_timeout = null;
}

EDIT: La accepté de répondre ci-dessous fonctionne parfaitement pour cette situation, cependant, j'ai trouvé que le mousestop() fonctionnalités fournies dans la réponse effectivement éliminé mon besoin pour l'agrégation, donc si vous êtes à la lecture de cette question et la recherche d'une réponse, voir si le mousestop plugin est ce que vous avez vraiment besoin!

OriginalL'auteur Topher Fangio | 2011-01-10