24、js - 面试 - 防抖

文章介绍了JavaScript中的防抖技术,用于优化搜索框输入事件。通过lodash库的_.debounce()方法或者自定义的debounce函数,在单位时间内用户频繁输入时,只在最后一次输入后执行搜索操作,提高性能。
摘要由CSDN通过智能技术生成
<body>

    <input type="text">

</body>

</html>
<script src="./lodash.min.js"></script>
<script>

    // 防抖:单位时间内,频繁地触发事件,只执行最后一次
    // 使用场景:搜索框

    function myFn() {
        console.log("搜索了1");
    }

    // 方案一:使用lodash库的_.debounce()方法,_.debounce()方法会返回一个函数
    // document.querySelector('input').addEventListener('input', _.debounce(myFn, 500));

    // 方案二:自己手写防抖函数
    function debounce(fn, time) {
        let timer = null;
        return function () {
            timer && clearTimeout(timer);
            timer = setTimeout(() => {
                fn();
            }, time);
        }
    }
    document.querySelector('input').addEventListener('input', debounce(myFn, 500));


</script>
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值