javascript関数の手ぶれ、関数の節流を防ぎます.
1024 ワード
関数ジッパー(debounce)
var debounce = function(idle, action){
var last;
return function(){
var that = this, args = arguments;
clearTimeout(last);
last = setTimeout(function(){
action.apply(that, args);
}, idle);
};
};
var handle = debounce(2000,function(){
console.log('########## '+arguments[0]+' ###########');
});
document.body.onclick= function() {
console.log('click');
handle('to do something');
};
関数の流れvar throttle = function(delay, action){
var last = 0;
return function(){
var curr = +new Date();
if (curr - last > delay){
action.apply(this, arguments);
last = curr;
}
};
};
var handle = throttle(2000,function(){
console.log('########## '+arguments[0]+' ###########');
});
document.body.onclick= function() {
console.log('click');
handle('to do something');
};