关于Js防抖与节流的思考
//节流
let time;
let per = 200; //这个是间隔时间,即事件触发到事件回调开始执行的间隔时间。根据业务需求决定
function throtting() {
if(time) {
clearTimeout(time)
}
time = setTimeout(function() {
//事件回调的具体方法
}, per)
}
//防抖
let timelength = 2000; //即在2秒内自第二次开始的其他事件触发都将被忽略
let lasttime = null; //上一次执行的时间点
function debounce() {
if(!lasttime) {
lasttime = new Date().getTime()
} else {
let curenttime = new Date().getTime();
if(curenttime - lasttime > 2000) {
//事件回调的具体方法
//需将上一次的时间更新↓
lasttime = curenttime
} else {
//时间不够,不做任何操作
return false
}
}
}本文内容仅供个人学习/研究/参考使用,不构成任何决策建议或专业指导。分享/转载时请标明原文来源,同时请勿将内容用于商业售卖、虚假宣传等非学习用途哦~感谢您的理解与支持!