12345678910111213141516171819202122232425262728293031 |
- define([], function(){
- // module:
- // dojo/debounce
- // summary:
- // This module provide a debouncer
- return function(cb, wait){
- // summary:
- // Create a function that will only execute after `wait` milliseconds
- // description:
- // Create a function that will only execute after `wait` milliseconds
- // of repeated execution. Useful for delaying some event action slightly to allow
- // for rapidly-firing events such as window.resize, node.mousemove and so on.
- // cb: Function
- // A callback to fire. Like hitch() and partial(), arguments passed to the
- // returned function curry along to the original callback.
- // wait: Integer
- // Time to spend caching executions before actually executing.
- var timer;
- return function(){
- if(timer){
- clearTimeout(timer);
- }
- var self = this;
- var a = arguments;
- timer = setTimeout(function(){
- cb.apply(self, a);
- }, wait);
- };
- };
- });
|