手写防抖与节流
Contents
0 区别与联系
-
相同:在不影响客户体验的前提下,将频繁的回调函数,进行次数缩减,避免大量计算导致的页面卡顿
-
不同:防抖是将多次执行变为最后一次执行,节流是将多次执行变为在规定时间内只执行一次
1 节流(throttle)
- 理解:
- 技能cd
- 概念:
- 当持续触发事件时,保证一定时间段内只调用一次事件处理函数。
- 应用场景:
- 鼠标不断点击触发,mousedown(单位时间内只触发一次)
- 监听滚动事件,比如是否滑到底部自动加载更多,用throttle来判断
- 代码:
|
|
2 防抖(debounce)
-
理解:
-
回城被打断,只要被打断,就重新回城
-
计算机睡眠事件
-
-
概念:
- 延时执行。指触发事件后在规定时间内回调函数只能执行一次,如果在规定时间内又触发了该事件,则会重新开始算规定时间。
-
应用场景:
-
search输入框搜索联想,用户在不断输入值时,用防抖来节约请求资源。
-
按钮点击:收藏,点赞,心标等
-
window触发resize的时候,不断的调整浏览器窗口大小会不断的触发这个事件,用防抖来让其只触发一次
-
-
代码:
|
|
Author gsemir
LastMod 2022-03-28