Debounce FTW.

This commit is contained in:
nobuti 2017-01-12 09:46:53 +01:00
parent 4a988b5a21
commit d1340f1b85
2 changed files with 23 additions and 2 deletions

View File

@ -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) {
var result = clone(original);
for (var key in source) {

View File

@ -2,13 +2,14 @@
var update = require('./update');
var instances = require('./instances');
var _ = require('../lib/helper');
module.exports = function (element) {
var i = instances.get(element);
var onMutationObserver = function () {
var onResize = function () {
update(element);
};
i.event.bind(window, 'resize', onMutationObserver);
i.event.bind(window, 'resize', _.debounce(onResize, 60));
};