如果一个函数内 短时间被执行很多遍,可以对其节流:
// 节流函数
/**
* fun 传入的函数
* delay 多少秒内不执行
* **/
debounce(fun, delay) {
let timer = null;
return function (...args) {
// 如果delay时间内被调用,则取消上一次
if (timer) {
clearTimeout(timer);
}
timer = setTimeout(() => {
// 执行当前函数
fun.apply(this, args)
}, delay)
}
}
使用:
const refresh = this.debounce(this.$refs.scroll.refresh,100)
this.$bus.$on('itemImageLoad', () => {
refresh();
})