防抖&节流

什么是防抖(⭐⭐⭐)

防抖策略debounce)是当事件被触发后,延迟 n 秒后再执行回调,如果在这 n 秒内事件又被触发,则重新计时。

防抖的应用场景:如淘宝搜索框,用户在输入框连续搜索一行字的时候可以通过防抖策略,知道用户把搜索内容全部打出才触发执行请求,这样可以有效减少请求的次数,节约请求资源

好处:用户在多次触发某事件的情况下只会执行最后一次     

步骤:

         1. 定义一个防抖动的 timer延时器并置空

         2.获取页面中input  DOM元素并绑定回车事件

         3.先清除延时器,确保连续多次触发但只执行最后一次定时器

示例代码:


    
    
    

效果图:

防抖&节流_第1张图片           防抖&节流_第2张图片

什么是节流(⭐⭐⭐)

节流策略throttle)可以减少一段时间内事件的触发频率

节流的应用场景

① 鼠标连续不断地触发某事件(如点击),只在单位时间内只触发一次;

② 懒加载时要监听计算滚动条的位置,但不必每次滑动都触发,可以降低计算的频率,而不必去浪费 CPU 资源;

 效果: 图片跟随鼠标移动

防抖&节流_第3张图片

步骤:

         1. 定义一个timer节流阀

         2.定义一个延时器

         3.如果节流阀不为空设置了鼠标跟随效果后,清空timer节流阀,方便下次开启延时器

         4.判断节流阀是否为空,如果不为空(上次的代码还没执行完)就return等待执行完毕

示例代码:


    
    

你可能感兴趣的:(前端,js,javascript)