美文网首页
什么是防抖和节流

什么是防抖和节流

作者: 暖暖1500 | 来源:发表于2021-09-26 17:51 被阅读0次

防抖

触发高频事件后n秒内函数只会执行一次,如果n秒内高频事件再次被触发,则重新计算时间
实现思路:每次触发事件时都取消之前的延时调用方法

  function debounce(fn){
      let timer = null; // 创建一个标记来存放定时器的返回值
      return function(){
         window.clearTimeout(timer); // 每当用户触发事件时把之前的setTimeout清除掉
         timer =  window.setTimeout(() => {
            fn.apply(this,arguments); // 箭头函数中的this总是指向外层调用者
        }, 500);
      }
  }
  function say(){
     console.log("防抖成功");
  }
 // 使用
  let inp = document.getElementById('inp');
  inp.addEventListener('input', debounce(say));

节流

高频事件触发,但在n秒内只会执行一次,所以节流会稀释函数的执行频率
实现思路:每次触发事件都判断当前是否有等待执行的延时函数

  function throttle(fn){
    let isRun = true; // 通过闭包保存一个标记
    return function(){
      if(!isRun){ // 在函数的开头判断标记是否为true, 不为true则什么都不做 直接return
        return;
      }
      isRun = false; 
      window.setTimeout(() => {
        fn.apply(this, arguments);
        isRun = true;
      }, 500);
    }
  }
 // 使用
  function say(e) { 
    console.log(e.target.innerWidth, e.target.innerHeight); 
  } 
  window.addEventListener('resize', throttle(say));

相关文章

  • 谈谈js中的节流和防抖函数

    关于节流和防抖,这篇文章说的很好了,深入lodash源码分析防抖和节流深入篇 | Lodash 防抖和节流是怎么实...

  • 什么是防抖和节流?哪里会用到?重点是什么?怎样实现源码?

    什么是防抖和节流? 函数的防抖和节流,都是优化高频率执行js代码的方法,具体来说:函数防抖:是在频繁触发的情况下,...

  • JavaScript防抖和节流

    1. 认识防抖和节流 1.1. 对防抖和节流的认识 防抖和节流的概念其实最早并不是出现在软件工程中,防抖是出现在电...

  • 防抖和节流理解

    一、什么是防抖和节流?为什么用? |--引入防抖和节流解决的问题:当一个函数被频繁、无限制的被调用的时候,会加...

  • 什么是防抖和节流

    防抖 触发高频事件后n秒内函数只会执行一次,如果n秒内高频事件再次被触发,则重新计算时间实现思路:每次触发事件时都...

  • Javascript 基础

    1、函数防抖和函数节流 【《javascript高级程序设计》里,函数节流是这里讲的函数防抖。】函数防抖: 在事件...

  • JavaScript:函数防抖与节流

    什么是函数防抖与节流? 函数节流和函数防抖,两者都是优化高频率执行js代码的一种手段。 定义: 防抖: n 秒后在...

  • 手写防抖和节流函数实现

    1. 认识防抖和节流函数 防抖和节流的概念其实最早并不是出现在软件工程中,防抖是出现在电子元件中,节流出现在流体流...

  • 实现防抖和节流

    一、认识防抖和节流函数 防抖和节流的概念其实最早并不是出现在软件工程中,防抖是出现在电子元件中,节流出现在流体流动...

  • 关于防抖和节流的区别和实现

    对于“防抖”和“节流”,之前以为这两个词是一个概念,翻了几篇文章特此写笔记整理一下。 防抖和节流的区别 防抖是.....

网友评论

      本文标题:什么是防抖和节流

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