Added debounce with guidance from the underscore.js implementation: e944e0275a/underscore.js (L880)
e944e0275a/underscore.js (L880)