【日常笔记】关于防抖和节流

防抖

在浏览器的resize、scroll,鼠标的mousemove、mouseover,input输入框的keypress等事件触发时会不断调用回调函数,频繁的触发回调函数也会消耗性能。
优化:被触发n秒后再执行回调,如果在这n秒内又被触发,则重新计时。
实际场景使用:手机号、邮箱验证输入检测;搜索框搜索输入;窗口大小Resize

做了一下实验,发现延迟500ms很合适,防抖对于DOM更新而言其实相当于异步更新DOM,如果回调里有AJAX请求,防抖相当于做了一定节流(减少http请求)。

节流

在写业务逻辑的时候常常会遇到用户触发一个按钮,查询接口后成功后响应用户,但是如果查询接口过程中响应速度过慢,用户会误以为有问题,而频繁点击按钮,这时候可以给按钮做节流,控制按钮只在用户第一次点击时和接口返回失败时候有效。

在异步操作完成时,按钮点击才有效

总结

防抖相当于在频繁调用时给回调函数添加异步操作,减少调用的次数;而节流就是每次只在异步函数操作完成后再次执行有效

猜你喜欢

转载自www.cnblogs.com/seny-33/p/12442850.html