1. 概念上的区别(从 handle 的有效性分析)
- 防抖:多次执行只有最后一次生效,必要参数 [handle, time]
- 节流:一段时间内只能执行一次,必要参数 [handle, time]
2. 实现一下
- 防抖:
1 function debounce(handle, time) { 2 let timer = null; 3 return function () { 4 if (timer) { 5 clearTimeout(timer); 6 timer = null; 7 } 8 timer = setTimeout(() => { 9 handle(); 10 }, time); 11 }; 12 }
- 节流:
1 function throttle(handle, time) { 2 let timer = null; 3 return function () { 4 if (!timer) { 5 handle(); 6 timer = setTimeout(() => { 7 clearTimeout(timer); 8 timer = null; 9 }, time); 10 } 11 }; 12 }
3. 从执行栈与事件队列的角度深度分析
-
防抖是执行了唯一一个被添加到事件队列的 handle,它前面的 handle 随着计时器的移除也都没有进入事件队列,也就不存在进入执行栈了
-
节流是 handle 在当前执行栈就直接执行了
- 所以,防抖是在下一次执行栈执行,节流是在当前执行栈执行
© 版权声明
文章版权归作者所有,未经允许请勿转载。

版权声明:
1、IT大王遵守相关法律法规,由于本站资源全部来源于网络程序/投稿,故资源量太大无法一一准确核实资源侵权的真实性;
2、出于传递信息之目的,故IT大王可能会误刊发损害或影响您的合法权益,请您积极与我们联系处理(所有内容不代表本站观点与立场);
3、因时间、精力有限,我们无法一一核实每一条消息的真实性,但我们会在发布之前尽最大努力来核实这些信息;
4、无论出于何种目的要求本站删除内容,您均需要提供根据国家版权局发布的示范格式
《要求删除或断开链接侵权网络内容的通知》:https://itdw.cn/ziliao/sfgs.pdf,
国家知识产权局《要求删除或断开链接侵权网络内容的通知》填写说明: http://www.ncac.gov.cn/chinacopyright/contents/12227/342400.shtml
未按照国家知识产权局格式通知一律不予处理;请按照此通知格式填写发至本站的邮箱 wl6@163.com
1、IT大王遵守相关法律法规,由于本站资源全部来源于网络程序/投稿,故资源量太大无法一一准确核实资源侵权的真实性;
2、出于传递信息之目的,故IT大王可能会误刊发损害或影响您的合法权益,请您积极与我们联系处理(所有内容不代表本站观点与立场);
3、因时间、精力有限,我们无法一一核实每一条消息的真实性,但我们会在发布之前尽最大努力来核实这些信息;
4、无论出于何种目的要求本站删除内容,您均需要提供根据国家版权局发布的示范格式
《要求删除或断开链接侵权网络内容的通知》:https://itdw.cn/ziliao/sfgs.pdf,
国家知识产权局《要求删除或断开链接侵权网络内容的通知》填写说明: http://www.ncac.gov.cn/chinacopyright/contents/12227/342400.shtml
未按照国家知识产权局格式通知一律不予处理;请按照此通知格式填写发至本站的邮箱 wl6@163.com
相关文章
没有相关内容!