diff -r d334a616c023 -r e16a97fb364a src/cm/media/js/lib/yui/yui3-3.15.0/build/yui-throttle/yui-throttle.js --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/src/cm/media/js/lib/yui/yui3-3.15.0/build/yui-throttle/yui-throttle.js Mon Mar 10 15:19:48 2014 +0100 @@ -0,0 +1,54 @@ +YUI.add('yui-throttle', function (Y, NAME) { + +/** +Throttles a call to a method based on the time between calls. This method is attached +to the `Y` object and is documented there. + + var fn = Y.throttle(function() { + counter++; + }); + + for (i; i< 35000; i++) { + out++; + fn(); + } + + +@module yui +@submodule yui-throttle +*/ + +/*! Based on work by Simon Willison: http://gist.github.com/292562 */ +/** + * Throttles a call to a method based on the time between calls. + * @method throttle + * @for YUI + * @param fn {function} The function call to throttle. + * @param ms {Number} The number of milliseconds to throttle the method call. + * Can set globally with Y.config.throttleTime or by call. Passing a -1 will + * disable the throttle. Defaults to 150. + * @return {function} Returns a wrapped function that calls fn throttled. + * @since 3.1.0 + */ +Y.throttle = function(fn, ms) { + ms = (ms) ? ms : (Y.config.throttleTime || 150); + + if (ms === -1) { + return function() { + fn.apply(this, arguments); + }; + } + + var last = Y.Lang.now(); + + return function() { + var now = Y.Lang.now(); + if (now - last > ms) { + last = now; + fn.apply(this, arguments); + } + }; +}; + + +}, '@VERSION@', {"requires": ["yui-base"]});