JS防抖小知识

作者: 周星星的学习笔记 | 来源:发表于2021-12-07 16:38 被阅读0次

我们在做类似搜索框输入的时候,如果是即时搜索(只要输入框内容有变化就触发搜索请求),一般情况下没有什么大问题,但是无形中多出了很多无用的请求,如何能做到搜索我们想要的关键字呢?这个时候就要用到防抖的知识了。

一、一般的做法

1.代码示例

<!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>Document</title>
</head>
<body>
    <input id="searchInput" type="text" />
    <script>
        const inputDom = document.getElementById('searchInput');
        inputDom.addEventListener('input',() => {
            console.log('发送搜索请求');
        })
    </script>
</body>
</html>

2.效果(每输入一次字符就会发送一次请求)

效果

二、防抖处理后

1.代码示例

<!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>Document</title>
</head>
<body>
    <input id="searchInput" type="text" />
    <script>
        const inputDom = document.getElementById('searchInput');
        function debounce(fn, delay) {
            let timer = null;
            return function () {
                if (timer) {
                    clearTimeout(timer)
                }
                timer = setTimeout(() => {
                    fn();
                }, delay)
            }
        }
        inputDom.addEventListener('input', debounce(() => {
            console.log('发送搜索请求');
        }, 500))
    </script>
</body>
</html>

2.效果(快速输入只会有一次请求)

效果

三、备注

参考来源

相关文章

  • JS防抖小知识

    我们在做类似搜索框输入的时候,如果是即时搜索(只要输入框内容有变化就触发搜索请求),一般情况下没有什么大问题,但是...

  • 前端性能优化-浅谈js防抖和节流

    浅谈js防抖和节流

  • JS函数防抖

    JS 中的函数防抖 一、什么是函数防抖? 概念: 函数防抖(debounce), 就是指触发事件后,在 n 秒内函...

  • 防抖和节流

    一、防抖:只执行最后一次 js防抖方法 一、节流:控制执行次数 节流

  • js 防抖

  • [JavaScript] 函数节流(throttle)和函数防抖

    js 的函数节流(throttle)和函数防抖(debounce)概述 函数防抖(debounce) 一个事件频繁...

  • 微信小程序防抖、节流的使用

    1、防抖、节流函数的封装 在utils文件夹下新建utils.js文件,然后写入节流和防抖函数 在.js页面引入并使用:

  • js 防抖和节流

    防抖 防抖是js优化的重要的一部分,也是面试中手写代码最常考的题目。那么我们为什么要防抖?防抖是什么意思?比如我们...

  • vue 中使用防抖和节流

    1.在公共方法中(如public.js中),加入函数防抖和节流方法 // 防抖 export default { ...

  • 面试过程中遇到的问题记录

    1.js的防抖和节流 函数防抖 函数防抖原理(debounce):当持续触发事件时,一定时间段内没有再触发事件,事...

网友评论

    本文标题:JS防抖小知识

    本文链接:https://www.haomeiwen.com/subject/cszqzltx.html