js-review/js/防抖.js

35 lines
1020 B
JavaScript

// 通过防抖,可以避免在用户快速连续地进行操作时(例如连续快速点击按钮),服务器或浏览器因为接收到过多无意义的重复请求而造成的性能瓶颈,从而提高页面性能和用户体验
/**
* @description 一个防抖函数
* @param { Function } - 需要添加防抖功能的函数
* @delay { number } - 防抖延迟的时间
*/
export default function deBounce(fun, delay) {
var timer = 0
return function() {
var args = arguments
var context = this
if(timer) clearTimeout(timer)
timer = setTimeout(function(){
fun.apply(context, args)
})
}
}
/**
* @description 首次执行版本
* @param { Function } - 需要添加防抖功能的函数
* @delay { number } - 防抖延迟的时间
*/
export default function deBounce(fun, delay) {
var timer = 0
return function() {
var args = arguments
var context = this
if(timer) clearTimeout(timer)
timer = setTimeout(function(){
fun.apply(context, args)
})
}
}