Debounce FTW.
This commit is contained in:
parent
4a988b5a21
commit
d1340f1b85
@ -23,6 +23,26 @@ var clone = exports.clone = function (obj) {
|
|||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
|
exports.debounce = function (func, wait, immediate) {
|
||||||
|
var timeout;
|
||||||
|
return function () {
|
||||||
|
var context = this;
|
||||||
|
var args = arguments;
|
||||||
|
var later = function () {
|
||||||
|
timeout = null;
|
||||||
|
if (!immediate) {
|
||||||
|
func.apply(context, args);
|
||||||
|
}
|
||||||
|
};
|
||||||
|
var callNow = immediate && !timeout;
|
||||||
|
clearTimeout(timeout);
|
||||||
|
timeout = setTimeout(later, wait);
|
||||||
|
if (callNow) {
|
||||||
|
func.apply(context, args);
|
||||||
|
}
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
exports.extend = function (original, source) {
|
exports.extend = function (original, source) {
|
||||||
var result = clone(original);
|
var result = clone(original);
|
||||||
for (var key in source) {
|
for (var key in source) {
|
||||||
|
@ -2,13 +2,14 @@
|
|||||||
|
|
||||||
var update = require('./update');
|
var update = require('./update');
|
||||||
var instances = require('./instances');
|
var instances = require('./instances');
|
||||||
|
var _ = require('../lib/helper');
|
||||||
|
|
||||||
module.exports = function (element) {
|
module.exports = function (element) {
|
||||||
var i = instances.get(element);
|
var i = instances.get(element);
|
||||||
|
|
||||||
var onMutationObserver = function () {
|
var onResize = function () {
|
||||||
update(element);
|
update(element);
|
||||||
};
|
};
|
||||||
|
|
||||||
i.event.bind(window, 'resize', onMutationObserver);
|
i.event.bind(window, 'resize', _.debounce(onResize, 60));
|
||||||
};
|
};
|
||||||
|
Loading…
Reference in New Issue
Block a user