什么是防抖 ?什么是节流 ?以及应用场景

news/2024/12/13 2:39:49/

文章目录

    • 1、防抖是什么 ?什么是节流 ?以及应用场景
      • 2、先来看防抖代码
      • 3、节流

1、防抖是什么 ?什么是节流 ?以及应用场景

先解释下什么是防抖,防抖就是当触发一个事件不会立即执行,会等待 n 秒后再执行该事件,如果在等待 n 秒期间你再次出发,则会重新计时,也就是说防抖不管你触发多少次这个事件,永远只有一次在执行,并且执行的是最后一次,

登录、发短信等按钮避免用户点击太快,以致于发送了多次请求,需要防抖

scroll 事件,每隔一秒计算一次位置信息等 浏览器播放事件,每个一秒计算一次进度信息等 需要节流

2、先来看防抖代码

<!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><button id="btn">click</button><script>let btn = document.getElementById('btn')function debounce(fn, delay = 200) {let timer = nullreturn function (...args) {if (timer) {clearTimeout(timer)timer = null}timer = setTimeout(() => {fn.apply(this, args)clearTimeout(timer)timer = null}, delay)}}btn.addEventListener('click', debounce((e) => {console.log(e.target)}, 1000))</script>
</body>
</html>

什么是节流:在触发任务的第一时间执行任务,并且设定定时器,如果在该定时器还未结束的时候还有触发任务的,也不执行,实现节流的核心是时间间隔,在设定的时间间隔内如果还有同样的任务进来,则不执行。

3、节流

<!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><button id="btn">clickMe</button>
</body>
<script>let btn = document.getElementById('btn')function throttle(fn, delay = 200) {let flag = truereturn function (...args) {if (!flag) {return}flag = falsesetTimeout(() => {fn.apply(this, args)flag = true}, delay)}}btn.addEventListener('click', throttle((e) => {console.log(1)}, 1000))
</script></html>

http://www.ppmy.cn/news/480344.html

相关文章

防抖的原理及使用

防抖 原理 事件响应函数在一段时间后才执行&#xff0c;如果在这段时间内再次调用&#xff0c;则重新计算执行时间&#xff1b;当预定的时间内没有再次调用该函数&#xff0c;则执行该事件响应函数。 // 这里用代码解释一下&#xff0c;如果不用防抖let count 0// 演示事件是…

JavaScript专题(三)防抖

防抖 目录 一、为什么需要防抖二、防抖的原理三、防抖简单实现四、防抖进阶写在最后 一、为什么需要防抖 高频的函数操作可能产生不好的影响如&#xff1a;resize、scroll、mousedown、mousemove、keyup、keydown…… 为此&#xff0c;我们举个示例代码来了解事件如何频繁…

防抖的详细解读

防抖的详细解读 场景例子说明+代码实现不运用防抖运用防抖(逐渐优化)版本一:(基本效果)版本二:(this问题)版本三:(enent对象问题)版本四:(立即执行)版本五:(返回值)版本六:(撤销操作)场景 滚动条的滚动网络请求mousemove…总之一个事件频繁的触发,而我们恰…

前端必会——防抖

目录 前言一、什么是防抖&#xff1f;二、防抖解决了什么问题三、实现防抖的基本代码四、防抖的应用场景1.代码实现2.结果展示 总结 前言 本文讲解一下js中防抖思想&#xff0c;下方有实现防抖的基本代码&#xff0c;可以复制到自己的编辑器看看效果哦。也有实际的应用场景&am…

防抖云台-鸡头稳定 简介篇

概念 EIS Electronic Image Stabilization 电子图像防抖 AIS (HUAWEI) AI Image Stabiliza 华为AI防抖 OIS Optical Image Stabilization 光学图像防抖 简介 Chicken Head Tracking 视频 原理 转自 松鼠会 与 果壳 当鸽子抬起后脚往前走&#xff0c;重心随着身体紧跟…

图像视频防抖

视频防抖 该项技术关键字挺多的&#xff0c;但作用都是去除视频拍摄过程中轻微抖动造成的图像模糊。 Anti-Shake&#xff0c;Shake-proof, imagestabilization都是这个意思&#xff0c;image stabilization是由canon最先开始这么称呼的&#xff0c;Anti-shake更通用一点。 该…

防抖、节流的介绍

目录 一、什么时候要用到防抖节流 输入框连续输入的案例 滚动条案例 二、什么是防抖、节流 使用防抖来解决输入框案例造成的浪费现象&#xff1a; 使用节流来解决滚动条案例造成的浪费现象&#xff1a; 三、总结 一、什么时候要用到防抖节流 针一类类快速连续触发和不可控…

视频防抖技术的实现

1. 介绍 视频防抖是指用于减少摄像机运动对最终视频的影响的一系列方法。摄像机的运动可以是平移&#xff08;比如沿着x、y、z方向上的运动&#xff09;或旋转&#xff08;偏航、俯仰、翻滚&#xff09;。 对视频防抖的需求在许多领域都有。 这在消费者和专业摄像中是极其重…