js中的防抖和节流
js中的防抖和节流
1、防抖
1.1 什么是防抖
简单来说就是一个事件被频繁触发,但是不希望它一直做某种操作,而只是在我完成这个事件的时候才做这样一个操作。也就是说在我快速的触发事件的时候,我的下一次事件触发会取消上一次的事件
1.2 应用场景
1、搜索输入框,每输入一次实时的出现一个菜单,用户希望输入完了值之后才有菜单,不希望每输入一个字母就有一个菜单
1.3 代码展示
如下代码需求:
1、当我在500秒以内输入值算作没有输入完成
2、没有输入完成的话不能在控制台打印
防抖操作
2、节流
2.1 什么是节流
节流就是在某一段时间内,只执行一次操作,节省资源
2.2应用场景
1、懒加载计算滚动条的位置,不必每次都要去计算
2、疯狂触发某个事件时,某个间隔中,只运行一次
2.3代码实现
需求:
1、鼠标移动的时候,方块也移动
2、减少鼠标移动时,事件的执行次数
节流操作
3、防抖和节流的区别
1、防抖只执行最后一次操作。
2、节流是在某一段时间内只执行一次操作,这个操作往往是第一次。