jQuery: dispara eventos de mousemove con menos frecuencia

Estoy tratando de encontrar una forma limpia de agregar eventos de mousemove para asegurarme de que se llame mi código, pero solo una vez cada 250-300 milisegundos.

He pensado en usar algo como lo siguiente, pero me preguntaba si había un patrón mejor, o algo que jQuery proporciona que haga lo mismo:

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;
}

EDITAR: La respuesta aceptada a continuación funcionaría perfectamente para esta situación, sin embargo, descubrí que elmousestop() La funcionalidad proporcionada en la respuesta realmente eliminó mi necesidad de la agregación, por lo que si está leyendo esta pregunta y está buscando una respuesta, vea simousestop ¡El complemento es lo que realmente necesitas!

Respuestas a la pregunta(9)

Su respuesta a la pregunta