防抖与节流
用了lodash.js 的封装【闭包+延迟器】,也可以自己原生写
防抖
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8" /> <title>Document</title> <script src="./js/lodash.js"></script> </head> <body> <div> <h1>我是计数器<span>0</span></h1> <button>点击我加一</button> </div> </body> <script> //节流,指连续触发事件但是在 n 秒中只执行一次函数。节流会稀释函数的执行频率 let span = document.querySelector('span'); let button = document.querySelector('button'); let count = 0; button.onclick = _.throttle(function () { count++; span.innerHTML = count; console.log('执行'); }, 2000); </script> </html>
不加防抖:只要输入框数据一直变化,则跟着一直log,
加了防抖:正在输入时候不log,等输入完(“抖完”),按设置的时间后(没有则不需要等待) log。
※回城 ,按多少次,等最后一次才能进行回城状态。

节流
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8" />
<title>Document</title>
<!-- 引入lodash:lodash全部的功能引入 -->
<script src="./js/lodash.js"></script>
</head>
<body>
<p>请你输入搜索的内容:<input type="text" /></p>
</body>
<script>
//防抖,指触发事件后 n 秒后才执行函数,如果在 n 秒内又触发了事件,则会重新计算函数执行时间。
let input = document.querySelector('input');
input.oninput = _.debounce(function () {
console.log('ajax发请求');
}, 2000);
//lodash插件,里面封装函数的防抖与节流的业务【闭包+延迟期】
</script>
</html>
不加节流:一直按一直加
加节流:一直按,按设置的时间间隔后才能加
※ 技能CD冷却


浙公网安备 33010602011771号