JavaScript-関数手ぶれ防止と関数節流

1053 ワード

関数の手ぶれ補正と関数の節流
関数の手ぶれ防止と関数の節流は、JavaScriptが高周波イベントを処理する際の処理手段である.
ファンクション
関数の手ぶれ防止:「複数の信号」を「単一の信号」に変換し、Javascriptでは、イベントが頻繁に発生し、イベントがトリガされた後、イベントが実行されますが、この期間内に、またこのイベントをトリガしたら、再び時間を計測します.
応用シーン:inputsubmit
function debounce (fn, delay){
    let timer = null;
    return function () {
        timer && clearTimeout(timer);
        let self = this, args = arguments;
        timer = setTimeout(function () {
            fn.apply(self, args);
        }, delay || 1000);
    }
}
関数の流れ
関数の流れ:関数の流れは一定のイベント内で、複数のトリガイベントが一回のコールバック関数だけで実行されます.(イベントがトリガされている場合は、一定時間ごとに1回のコールバックを実行するのに相当します)
応用シーン:mousemoveresize
function throttle(fn, delay) {
    let flag = true, timer = null;
    return function () {
        if (!flag) return;
        flag = false;
        let self = this, args = arguments;
        timer = setTimeout(function () {
            flag = true;
            fn.apply(self, args);
        }, delay || 500);
    };
}