Move into nested docroot
This commit is contained in:
parent
83a0d3a149
commit
c8b70abde9
13405 changed files with 0 additions and 0 deletions
web/core/misc
52
web/core/misc/debounce.js
Normal file
52
web/core/misc/debounce.js
Normal file
|
@ -0,0 +1,52 @@
|
|||
/**
|
||||
* @file
|
||||
* Adapted from underscore.js with the addition Drupal namespace.
|
||||
*/
|
||||
|
||||
/**
|
||||
* Limits the invocations of a function in a given time frame.
|
||||
*
|
||||
* The debounce function wrapper should be used sparingly. One clear use case
|
||||
* is limiting the invocation of a callback attached to the window resize event.
|
||||
*
|
||||
* Before using the debounce function wrapper, consider first whether the
|
||||
* callback could be attached to an event that fires less frequently or if the
|
||||
* function can be written in such a way that it is only invoked under specific
|
||||
* conditions.
|
||||
*
|
||||
* @param {function} func
|
||||
* The function to be invoked.
|
||||
* @param {number} wait
|
||||
* The time period within which the callback function should only be
|
||||
* invoked once. For example if the wait period is 250ms, then the callback
|
||||
* will only be called at most 4 times per second.
|
||||
* @param {bool} immediate
|
||||
* Whether we wait at the beginning or end to execute the function.
|
||||
*
|
||||
* @return {function}
|
||||
* The debounced function.
|
||||
*/
|
||||
Drupal.debounce = function (func, wait, immediate) {
|
||||
|
||||
'use strict';
|
||||
|
||||
var timeout;
|
||||
var result;
|
||||
return function () {
|
||||
var context = this;
|
||||
var args = arguments;
|
||||
var later = function () {
|
||||
timeout = null;
|
||||
if (!immediate) {
|
||||
result = func.apply(context, args);
|
||||
}
|
||||
};
|
||||
var callNow = immediate && !timeout;
|
||||
clearTimeout(timeout);
|
||||
timeout = setTimeout(later, wait);
|
||||
if (callNow) {
|
||||
result = func.apply(context, args);
|
||||
}
|
||||
return result;
|
||||
};
|
||||
};
|
Reference in a new issue