防抖(Debouncing)和节流(Throttling)

针对高频率触发事件问题(如:页面scroll,屏幕resize,监听用户输入等)---常用-解决方法:防抖节流

函数防抖:指在事件被触发n秒后再执行回调,如果在这n秒内事件又被触发,则重新计时。

防抖:触发高频事件后,n秒后函数只会执行一次,如果n秒内高频事件再次被触发,则重新计算时间。

防抖核心思想:每次事件触发则删除原来的定时器,建立新的定时器,反正只认最后一次,从最后一次触发开始计时

防抖核心要点:如果在定时器的时间范围内再次触发,则重新计时。

例如:打王者回城功能类似,反复触发回城功能,他会重新开始,直到最后一次触发才开始计时回城。

用途:可以使用在一些点击请求的事件上,避免因为用户的多次点击向后端发送多次请求。

应用场景:

按钮提交场景:防止多次提交按钮,只执行最后提交的一次

服务端验证场景:表单验证需要服务器配合,只执行一段连续的输入事件的最后一次,

还有搜索联想词功能类似生存环境请用lodash.debounce

函数节流:指规定一个单位时间,在这个单位时间内,只能有一次触发

剩余60%内容,订阅专栏后可继续查看/也可单篇购买

前端面试题 文章被收录于专栏

前端面试的一些常问问题、问题的具体实现(可直接运行)以及底层原理

全部评论

相关推荐

12-13 14:51
已编辑
井冈山大学 算法工程师
龙虾x:算法比你强的没有你美,比你美的…..算了已经没有比你美的了
工作两年想退休了
点赞 评论 收藏
分享
评论
点赞
1
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务