函数节流:在变化刷新频率达到一定值时,人眼就不会感觉到频率的刷新。所有频率太高会浪费性能,所以让函数执行在一定频率就可以节约性能
函数节流主要用在鼠标滚动
var execute = true;
document.getElementById("target").onscroll = ()=>{
if(!execute){
return;
}
execute = false;
setTimeout(()=>{
console.log("执行操作");
execute = true;
}, 300);
};
在onscroll在不断执行期间,每300毫秒执行一次操作
函数防抖:将乘客上车看作一个函数,司机开车看作一个函数。如果有乘客陆陆续续上车,司机就不会开车。如果司机过了一会儿没有看到有乘客上车,司机就会开车。应用场景:1、到输入账号时验证账号是否存在,在输入框输入很频繁的时候不会去后台验证账号名的存在,停止输入一段时间就去验证其是否存在。2、提交表单按钮防止用户快速频繁点击重复提交等
var timer = null;
const getOn = function(){
console.log("乘客上车")
clearTimeout(timer);
timer = setTimeout(function(){
console.log("司机开车");
}, 300);
};