前言
本文讲解一下js中防抖思想,下方有实现防抖的基本代码,可以复制到自己的编辑器看看效果哦。也有实际的应用场景,会HTML、CSS、JQuery以及使用jQuery发送Ajax请求即可。
一、什么是防抖?
防抖阻止了事件的多次调用,规定时间内只会执行一次。
二、防抖解决了什么问题
假设一个用户高频点击一个按钮,点击按钮后会向后台发送请求,如果不使用防抖,就会发送许多重复的Ajax请求,造成服务器压力。使用防抖后,规定时间内,只会发送一次Ajax请求,可以有效地减缓服务器的压力。
三、实现防抖的基本代码
通过监听输入框的输入事件,通过定时器每隔一秒获取一次用户输入的内容,如果一秒内用户又进行了输入,清除上一次的定时器,重新计时一秒,计时结束后将用户输入的内容打印到控制台。
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8" />
<meta http-equiv="X-UA-Compatible" content="IE=edge" />
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
<title>debounce</title>
</head>
<body>
<input type="text" placeholder="请输入您要搜索的内容~" />
<script>
let timer = null
$('input').on('input',function(){
console.log('没有防抖',$('input').val())
// 向清除一次定时器
clearTimeout(timer)
// 重新开启一个定时器
timer = setTimeout(() => {