Open sggmico opened 3 years ago
一般在频繁触发不必要时,可以考虑采用 节流 或 防抖思想进行优化,降低触发频次,提高页面性能。
节流
防抖
由 持续触发 转为 固定时间间隔(t)触发
持续触发
固定时间间隔(t)触发
具体应用场景,举例:
实现参考:
/** * 节流 * @param {*} fn * @param {*} delay */ export const throttle = function (fn, delay) { let timer return function (...arg) { if (timer) return timer = setTimeout(() => { fn.call(this, ...arg) timer = null }, delay) } }
由 持续触发 转为 自停止触发开始,固定时间(t)内无再次触发,则执行一次触发
自停止触发开始,固定时间(t)内无再次触发,则执行一次触发
具体应用场景 。举例:
/** * * @param {*} fn * @param {*} delay */ export const debounce = function (fn, delay) { let timer return function (...arg) { clearTimeout(timer) timer = setTimeout(() => { fn.call(this, ...arg) }, delay) } }
其他写法,欢迎大家打码交流……
一般在频繁触发不必要时,可以考虑采用
节流
或防抖
思想进行优化,降低触发频次,提高页面性能。节流
具体应用场景,举例:
实现参考:
防抖
具体应用场景 。举例:
实现参考:
其他写法,欢迎大家打码交流……