CKEDITOR.tools.buffers.throttle
Throttles input events (or any input calls) and triggers output not more often than once per minInterval.
Unlike CKEDITOR.tools.buffers.event this class allows passing custom parameters into the input function. For more information see the Throttling function issue.
Filtering
Properties
-
-
The variable to be used as a context for the output calls.
-
The minimal interval (in milliseconds) between the calls.
-
The ID of a delayed function call that will be called after the current interval frame.
Defaults to
0
Methods
constructor( minInterval, output, [ contextObj ] ) → eventCKEDITOR.tools.buffers.throttle#constructorCreates a new instance of the buffer.
Parameters
minInterval : NumberThe minimum interval between
outputcalls in milliseconds.output : FunctionThe function that will be executed as
output.[ contextObj ] : ObjectThe object used as context to the listener call (the
thisobject).
Returns
event
-
Acts as a proxy to the
outputfunction given in the consturctor, providing function throttling.Guarantees that the
outputfunction does not get called more often than indicated by the _minInterval.The first
inputcall is always executed asynchronously which means that theoutputcall will be executed immediately.var buffer = new CKEDITOR.tools.buffers.event( 200, function() { console.log( 'foo!' ); } ); buffer.input(); // 'foo!' logged immediately. buffer.input(); // Nothing logged. buffer.input(); // Nothing logged. // … after 200ms a single 'foo!' will be logged.Can be easily used with events:
var buffer = new CKEDITOR.tools.buffers.event( 200, function() { console.log( 'foo!' ); } ); editor.on( 'key', buffer.input ); // Note: There is no need to bind the buffer as a context.Parameters
[ args ] : Mixed[]
-
Resets the buffer state and cancels any pending calls.
-
Performs an actual call.
-
Cancels the deferred timeout.
-
Called when the function call should be rescheduled.
Returns
Boolean | undefinedIf it returns
false, the the parent call will be stopped.