в библиотеках бывают подобные методы,
например в undersore
http://documentcloud.github.com/underscore/#throttle
<script src="http://documentcloud.github.com/underscore/underscore-min.js"></script>
<script>
function x() {
console.log(1);
}
var y = _.throttle(x, 1000); // x будет вызываться не чаще одного раза в секунду
setInterval(y, 100); // вызываем y десять раз в секунду
</script>