简介

在 JavaScript 中,防抖(debounce)和节流(throttle)是用来限度函数执行频率的两种常见技术。

防抖(debounce) 是指在某个时间段内,只执行最初一次触发的函数调用。如果在这个时间段内再次触发该函数,会从新计时,直到等待时间完结才会执行函数。
这个技术通常用于解决频繁触发的事件,比方窗口大小调整、搜寻框输出等。防抖能够防止函数执行过屡次,以缩小网络开销和性能累赘。

节流(throttle) 是指在一段时间内限度函数的执行频率,保障肯定工夫内只执行一次函数调用。无论触发频率多高,都会在指定工夫距离内执行一次函数。
这个技术通常用于解决间断触发的事件,比方滚动事件、鼠标挪动事件等。节流能够管制函数的执行频率,以缩小资源耗费和进步性能。

防抖

<!DOCTYPE html><html lang="en"><head>    <meta charset="UTF-8">    <meta name="viewport" content="wi![防抖.gif](/img/bVdbzZB)dth=device-width, initial-scale=1.0">    <title>Document</title></head><body>    <button id="btn">防抖</button></body>// 引入lodash文件<script src="/node_modules/lodash/lodash.js"></script><script>    btn.onclick =  _.debounce(function() {        console.log('防抖在某段时间内只执行最初一次');    },1000)</script></html>

节流

<!DOCTYPE html><html lang="en"><head>    <meta charset="UTF-8">    <meta name="viewport" content="width=device-width, initial-scale=1.0">    <title>Document</title></head><body>    <button id="btn">节流</button></body>// 引入lodash文件<script src="/node_modules/lodash/lodash.js"></script><script>    btn.onclick =  _.throttle(function() {        console.log('节流是指在一段时间内限触发的次数');    },1000)</script></html>


lodash网址:https://www.lodashjs.com/