CKEDITOR.tools.buffers.event
Buffers input
events (or any input
calls) and triggers output
not more often than once per minInterval
.
Filtering
Properties
-
_context : Mixed
private readonly
The variable to be used as a context for the output calls.
-
_minInterval : Number
private readonly
The minimal interval (in milliseconds) between the calls.
-
_scheduledTimer : Number
private
The ID of a delayed function call that will be called after the current interval frame.
Defaults to
0
Methods
-
constructor( minInterval, output, [ contextObj ] ) → event
Creates a new instance of the buffer.
Parameters
minInterval : Number
The minimum interval between
output
calls in milliseconds.output : Function
The function that will be executed as
output
.[ contextObj ] : Object
The object used as context to the listener call (the
this
object).
Returns
-
input( [ args ] )
Acts as a proxy to the
output
function given in the consturctor, providing function throttling.Guarantees that the
output
function does not get called more often than indicated by the _minInterval.The first
input
call is always executed asynchronously which means that theoutput
call 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[]
-
reset()
Resets the buffer state and cancels any pending calls.
-
_call()
private
Performs an actual call.
-
_clearTimer()
private
Cancels the deferred timeout.
-
_reschedule() → Boolean | undefined
private
Called when the function call should be rescheduled.
Returns
Boolean | undefined
If it returns
false
, the the parent call will be stopped.