防抖和节流的区别

防抖和节流,这俩哥们无论声音相貌长得都非常像,就像孪生兄弟一般,有时候难免混为一谈。但实际上这俩哥们确实有不太一样的地方,这里我们就详细聊一下。
防抖,英文是debounce,bounce是弹跳的意思,de就是否定,debounce就是别瞎几把跳,翻译成文明用语就是防抖。
那到底什么是跳跳(抖动)呢?
比如你在百度搜索框输入内容,然后弹出联想词。弹出联想词一般是你在输入完成后再过一会执行的,翻译成程序语言就是:keyup事件结束后一段时间(n秒)才触发,如果n秒内keyup事件又发生了,就重新计算时间。
用一句话概括为:将多次执行变为最后一次执行
那什么是节流呢?
比如你去高铁排队过安检,当人流高峰期时,一般会有个人拿个牌子,一次只放一部分人进去,这样做就是为了防止一段时间人流过大导致踩踏现象;再比如QQ网页版,当你上线后,你的好友是一部分一部分加载出来的,如果一下子加载所有的好友(比如几百个),那浏览器内存很容易被dom给撑死,但一次加载一部分就没事,因此我们用程序语言描述就是:某事件高频触发,但在 n 秒内只会执行一次,这样就会稀释函数的执行频率。
用一句话概括为:将多次连续的执行变成每隔一段时间执行

你可能感兴趣的:(防抖和节流的区别)