首页 > 编程语言 >javascript的防抖与节流

javascript的防抖与节流

时间:2023-01-20 02:00:15浏览次数:32  
标签:function 触发 防抖 节流 javascript timer delay fn

一、节流

一段时间内只能触发一次,如果这段时间内触发多次事件,只有第一次生效会触发回调函数,一段时间过后才能再次触发(一定时间内只执行第一次)

应用场景

1、鼠标连续不断地触发某事件(如点击),只在单位时间内只触发一次;

2、懒加载时要监听计算滚动条的位置,但不必每次滑动都触发,可以降低计算的频率,而不必去浪费 CPU 资源;

function debounce(fn,delay){
  let timer = null;
  return function(){
    if(timer){
      clearTimeout(timer)
    }
    timer = setTimeout(fn,delay)
  }
}

二、防抖

在事件被触发时,延迟n秒后再触发回调函数,如果n秒内又触发了事件,则会重新开始计算时间(一定时间内最后一次生效)

应用场景

用户在输入框中连续输入一串字符时,可以通过防抖策略,只在输入完后,才执行查询的请求,这样可以有效减

少请求次数,节约请求资源

function debounce(fn,delay){
  let timer = null;
  return function(){
    if(timer){
      clearTimeout(timer)
    }
    timer = setTimeout(fn,delay)
  }
}

 

 

标签:function,触发,防抖,节流,javascript,timer,delay,fn
From: https://www.cnblogs.com/chccee/p/17062362.html

相关文章

  • 一个C#将字节流通过管道传输到C++的问题
    提问: 提问一个C#将字节流通过管道传输到C++的问题现有一个字节流数据需要通过管道传输到C++,目前使用的方法是转成string通过WriteLine写入管道中,在C++中通过ReadFile读取......
  • JavaScript事件循环
    一、是什么先,JavaScript是一门单线程的语言,意味着同一时间内只能做一件事,但是这并不意味着单线程就是阻塞,而实现单线程非阻塞的方法就是事件循环在JavaScript中,所有的任......
  • javaScript数组的sort()方法
    javaScript数组的sort()方法:今天再学习javaScript的数组的Array.sort()方法时,遇到了一个很有意思的问题,这个方法,直接调用,其实并不会得到我们想要的排序,而是会以一种很机械......
  • JavaScript学习笔记—instanceof和hasOwn
    1.instanceof用来检查一个对象是否是一个类的实例检查的是对象的原型链上是否有该类实例(只要原型链上有该类实例,就会返回true)Object是所有对象的原型,所以任何对象和Ob......
  • JavaScript trim() 方法
    JavaScripttrim()方法JavaScriptString对象去除字符串的头尾空格:varstr="Runoob";alert(str.trim());输出结果:Runoob定义和用法:trim()方法用于删......
  • JavaScript学习笔记—原型对象
    1.访问一个对象的原型对象(1)对象.__proto__(2)Object.getPrototypeOf(对象)一般用第二种,第一种不安全2.原型对象中的数据(1)对象中的数据(属性、方法等)(2)constructor(对象......
  • JavaScript精简(基于node.js)
    目录1、基本语法2、变量3、数据类型3.1、数字型Number3.2、字符串类型String3.3、布尔型Boolean3.4、Undefined、Null3.5、获取变量的数据类型3.6、数据类型的转化4、运......
  • Pure JavaScript Stars Generator All In One
    PureJavaScriptStarsGeneratorAllInOnepadStart&padEnd//constrating=stars=>`★★★★★☆☆☆☆☆`.slice(5-stars,10-stars);//constrating......
  • 千锋JavaScript学习笔记
    千锋JavaScript学习笔记目录千锋JavaScript学习笔记写在前面1.JS基础1.1变量1.2数据类型1.3数据类型转换1.4运算符1.5条件1.6循环1.7函数1.8对象数据类型1.9数......
  • JavaScript学习笔记—面向对象
    1.类的简介类是对象的模板,可以将对象中的属性和方法直接定义在类中,定义后,就可以直接通过类来创建对象。通过同一个类创建的对象,成为同类对象可以用instanceof来检查......