JS 防抖和节流

一部分的用户会有频繁的触发事件执行行为(比如连续点击,滑动滚动条等),这就很有可能导致界面卡顿,甚至浏览器的崩溃,防抖和节流就是来解决这种问题。

1、防抖

触发高频事件后n秒(n为自行设置)内函数只会执行一次,如果n秒内高频事件再次被触发,则重新计算时间。注意,只有足够空闲的时间,才执行一次

<div id="debounce" style="width: 100px;height: 100px;background-color: rebeccapurple;margin: 100px 300px;"></div>
<script>
    var db = document.getElementById("debounce");
    window.onload = function () {
        let obtn = document.getElementById('debounce'); //获取按钮
        obtn.addEventListener('click',debounceHandle(debounce),false); //监听绑定事件
    }
    //防抖函数
    function debounceHandle (fn) {
        let timer = null;
        return function () {
            clearTimeout(timer); //如果存在事件就清除定时器
            timer = setTimeout(function(){ //如果不存在那么就开启定时器
            fn.call(this,arguments);
            }
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值