1. 首页
  2. >
  3. 前端开发
  4. >
  5. Javascript

js防抖动函数

什么是js防抖动?

我是这样理解的,限制某个事件(函数)在指定时间内不重复触发。比如有一个输入框,当用户输入后进行远程搜索,如果不限制频次,用户每输入一个字符就会发起网络请求,但请求的很大可能不是用户想要的,这时候就可以用防抖动机制,规定用户在500ms内没有新的输入才发起网络请求。

一个简单的防抖实现

<!DOCTYPE html>

<html lang="en">

<head>

<meta charset="UTF-8" />

<meta name="viewport" content="width=device-width, initial-scale=1.0" />

<title>debouce-每天一个知识点</title>

</head>

<body>

<input type="text" id="name" />

</body>

<script>

//防抖函数

function debounce(fn, wait = 500) {

var timer;

return function() {

clearTimeout(timer);

timer = setTimeout(fn, wait);

};

}

//自己业务函数

function yourFunction() {

var value = document.querySelector("#name").value;

console.log(value);

}

//使用

document

.querySelector("#name")

.addEventListener("input", debounce(yourFunction, 500));

</script>

</html>


这是没有防抖动的效果


js防抖动函数


这是加了防抖函数的效果

js防抖动函数