Handschriftliche Implementierung von Front-End-JavaScript: Anti-Shake, Throttling

Anti-Shake: Führen Sie die Triggerfunktion nach einer bestimmten Zeit aus, und die Zeit wird neu berechnet, wenn die Funktion während dieser Zeit erneut ausgelöst wird.

    // 防抖
    function debounce(fn) {
    
    
        let timeout = null;
        return function () {
    
    
            clearTimeout(timeout);
            setTimeout(function () {
    
    
                fn.apply(this, arguments);
            }, 500);
        }
    }

Drosselung: Führen Sie die Triggerfunktion nach einer bestimmten Zeit aus, egal wie oft sie ausgelöst wird, sie wird nicht ausgeführt, bis die Triggerfunktion abgeschlossen ist.

    // 节流
    function throttle(fn) {
    
    
        let flag = null;
        return function () {
    
    
            if (flag) return;
            setTimeout(function () {
    
    
                fn.apply(this, arguments);
                flag = null;
            }, 500)
        }
    }

Guess you like

Origin blog.csdn.net/xiaorunye/article/details/130037710