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)
}
}