防抖和节流

    技术2022-07-31  81

    /** * 节流 第一次立即执行,然后隔wait毫秒后可再次执行callback * @param {Object} callback * @param {Object} wait */ throttle(callback, wait){ let timer = 0; return () => { let now = new Date().getTime(); if (now - timer > wait) { // 对比时间差,如果大于时间差就可执行 callback(); timer = now; // 再把上次时间替换为本次时间 } } }, /** * 防抖 调用该函数delay毫秒后执行callback,若在执行callback前再次调用该函数,则delay重新计时 * @param {Object} callback * @param {Object} delay */ debounce(callback,delay){ let timer = null; return () => { timer && clearTimeout(timer); timer = setTimeout(callback, delay); } }
    Processed: 0.014, SQL: 9