最後の実行を確認して追跡するために関数をラップすることができます。
ここ
function createBuffer(_fn, _delay){
if (typeof _fn != 'function') return null;
if (isNaN(_delay)) _delay = 1000;
var lastCall = 0;
var wrappedFn = function(){
if (lastCall + _delay > Date.now()) return;
lastCall = Date.now();
_fn.apply(this, arguments);
};
wrappedFn.reset = function(){
lastCall = 0;
};
return wrappedFn;
}
は、あなたのケースのためにそれを
// give to the 'createBuffer' your function and a timeout value
var myBuffFn = createBuffer(function(){
// this code will be fired once every 5 seconds
}, 5000);
// to reset the timer (if you need to re-execute before the timeout ends)
myBuffFn.reset();
// now you can use your 'myBuffFn' as a normal function
myBuffFn();
// example inside an interval
setInterval(myBuffFn, 0);
を使用する方法:
は、私は最近のアプリでそのような何かをした
var buffZoomed = createBuffer(zoomed, 5000);
今だけbuffZoomed();
を呼び出すどこ必要があり、buffZoomed.reset();
タイムアウトをリセットする場所