防抖(Debouncing)和节流(Throttling)
针对高频率触发事件问题(如:页面scroll,屏幕resize,监听用户输入等)---常用-解决方法:防抖节流
函数防抖:指在事件被触发n秒后再执行回调,如果在这n秒内事件又被触发,则重新计时。
防抖:触发高频事件后,n秒后函数只会执行一次,如果n秒内高频事件再次被触发,则重新计算时间。
防抖核心思想:每次事件触发则删除原来的定时器,建立新的定时器,反正只认最后一次,从最后一次触发开始计时
防抖核心要点:如果在定时器的时间范围内再次触发,则重新计时。
例如:打王者回城功能类似,反复触发回城功能,他会重新开始,直到最后一次触发才开始计时回城。
用途:可以使用在一些点击请求的事件上,避免因为用户的多次点击向后端发送多次请求。
应用场景:
按钮提交场景:防止多次提交按钮,只执行最后提交的一次
服务端验证场景:表单验证需要服务器配合,只执行一段连续的输入事件的最后一次,
还有搜索联想词功能类似生存环境请用lodash.debounce
函数节流:指规定一个单位时间,在这个单位时间内,只能有一次触发
剩余60%内容,订阅专栏后可继续查看/也可单篇购买
前端面试题 文章被收录于专栏
前端面试的一些常问问题、问题的具体实现(可直接运行)以及底层原理

查看23道真题和解析