Feature: Optimize resize events trigger

This commit is contained in:
winkidney
2019-03-07 17:55:14 +08:00
committed by Isaac Bythewood
parent 488138767f
commit 051c1735d6

View File

@@ -198,21 +198,28 @@ Vue.component('pin-container', {
}); });
(function() { (function() {
var throttle = function(type, name, obj) { var previousResize = 0;
obj = obj || window; var throttle = function(type, name, obj) {
var running = false; obj = obj || window;
var func = function() { var running = false;
if (running) { return; } var func = function() {
running = true; if (running) { return; }
requestAnimationFrame(function() { var now = new Date().getTime();
obj.dispatchEvent(new CustomEvent(name)); console.log(now, previousResize, now - previousResize);
running = false; if ((now - previousResize) < 200) {
}); return
}; }
obj.addEventListener(type, func); previousResize = now;
}; running = true;
requestAnimationFrame(function() {
obj.dispatchEvent(new CustomEvent(name));
running = false;
});
};
obj.addEventListener(type, func);
};
throttle("resize", "optimizedResize"); throttle("resize", "optimizedResize");
})(); })();
var app = new Vue({ var app = new Vue({