You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
31 lines
804 B
31 lines
804 B
define([], function(){ |
|
// module: |
|
// dojo/throttle |
|
// summary: |
|
// This module provide a throttler |
|
|
|
return function(cb, wait){ |
|
// summary: |
|
// Create a function that will only execute once per `wait` periods. |
|
// description: |
|
// Create a function that will only execute once per `wait` periods |
|
// from last execution when called repeatedly. Useful for preventing excessive |
|
// calculations in rapidly firing events, such as window.resize, node.mousemove |
|
// and so on. |
|
// cb: Function |
|
// The callback to fire. |
|
// wait: Integer |
|
// time to delay before allowing cb to call again. |
|
var canrun = true; |
|
return function(){ |
|
if(!canrun){ |
|
return; |
|
} |
|
canrun = false; |
|
cb.apply(this, arguments); |
|
setTimeout(function(){ |
|
canrun = true; |
|
}, wait); |
|
}; |
|
}; |
|
});
|
|
|