扫码关注公众号

前端JavaScript语言之防抖和节流
10-18
256观看
01

防抖函数的实现原理?

防抖函数的实现原理非常简单,就是在一定时间内只执行最后一次触发的事件,忽略之前触发的所有事件。具体实现方法如下:1、设置一个定时器,当触发事件时,如果定时器存在,则清除定时器。2、重新设置一个定时器,延迟一定时间后执行事件。3、如果在延迟时间内再次触发事件,则重复1和2的步骤。4、如果延迟时间到了,执行事件。

来自:JavaScript语言-防抖和节流
02

防抖函数的应用场景?

防抖函数适用于一些高频率触发的事件,比如:1、输入框实时搜索,避免频繁请求后端接口。2、浏览器窗口resize事件,避免频繁触发DOM操作。3、滚动条滚动事件,避免频繁更新DOM。4、按钮点击事件,避免重复提交表单。

来自:JavaScript语言-防抖和节流
03

防抖函数的注意事项?

1、防抖函数的延迟时间需要根据实际情况设置,设置过短可能会导致事件被频繁触发,设置过长可能会影响用户体验。2、防抖函数返回的是一个新函数,所以需要将其赋值给原来的函数。3、防抖函数的this指向需要明确,可以使用箭头函数或者bind方法来解决。总之,防抖函数是一种非常实用的JavaScript函数优化技术,能够有效减少一些高频率触发的事件所带来的性能问题,提高网站的用户体验。

来自:JavaScript语言-防抖和节流
04

简述一下防抖和节流以及应用场景

简述:(1)防抖:就是将一段时间内连续的多次触发转化为一次触发。(2)节流:减少一段时间内触发的频率区别:两者区别在于函数节流是固定时间做某一件事,比如每隔1秒发一次请求。而函数防抖是在频繁触发后,只执行一次(两者的前提都是频繁触发)场景:(1)节流:一般是onrize,onscroll等这些频繁触发的函数,比如你想获取滚动条的位置,然后执行下一步动作;鼠标不断点击触发,mousedown(单位时间内只触发一次)…比如你想获取滚动条的位置,然后执行下一步动作。如果监听后执行的是Dom操作,这样的频繁触发执行,可能会影响到浏览器性能,甚至会将浏览器卡崩。我们可以规定他多少秒执行一次,这种方法叫函数节流constthrottle=(fn,delay)=>{//记录上一次函数触发的时间letlastTime=0;return()=>{//记录当前函数触发的时间letnowTime=Date.now();if(nowTime-lastTime>delay){fn();//同步时间lastTime=nowTime;}}};(2)防抖:频繁操作点赞和取消点赞,因此需要获取最后一次操作结果并发送给服务器;search搜索联想,用户在不断输入值时…constdebounce=(fn,delay)=>{//记录上一次的延时器lettimer=null;return()=>{//清除上一次延时器clearTimeout(timer);//重新设置新的延时器timer=setTimeout(()=>{fn()},delay)}};

来自:JavaScript语言-防抖和节流
课程
专栏
【校招VIP】JavaScript防抖功能(js防抖函数,防抖功能的应用与解析)
csdn
防抖
【校招VIP】JavaScript-节流函数的实现
csdn
节流
【校招VIP】简述一下防抖和节流,以及应用场景
csdn
Web前端
面试指导
防抖和节流
js语言和框架-JavaScript语言-防抖和节流
3专栏
1课程
4 试题