Javascript---BOM 防抖 节流 我会带着你远行 2024-04-08 12:37 80阅读 0赞 ## 函数防抖 ## 单位时间内,多次触发一个事件,以最后一次触发为准。 防抖实现: 1.声明一个全部变量存储定时器ID。 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> <input type="text" name="" id="inp"> <script> // 防抖 var inp = document.getElementById('inp') //声明一个全局变量存储定时器 var timeID = null inp.oninput = function () { //1清除之前的定时器 clearTimeout(timeID) //2开启本次定时器 timeID = setTimeout(() => { console.log(`你输入的值是${this.value}`); }, 1000); } </script> </body> </html> 多次输入1 只输出最后一次的结果 ![acfeb92fc8064cea8e296aa5de60968d.png][] ## 函数节流 ## 单位时间内,多次触发一个事件,只触发一次。 节流的实现: 1.声明一个全局变量,存储触发事件。 2.每一次出发事件,获取当前时间。 3.判断当前时间与上一次触发事件,是否超过间隔。 4.如果超过间隔时间,则执行事件处理代码,然后存储本次触发的时间。 <!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 onclick="btnClick()">点我呀</button> <script> //声明一个全局变量存储触发事件 var lastTime = null function btnClick() { //1.每一次触发 先获取本次的时间戳 var currentTime = Date.now() //2.判断当前时间与上一次触发时间是否超过间隔 if (currentTime - lastTime >= 3000) { console.log('按钮被点击了'); //3.存储本次的触发时间 lastTime = currentTime } } </script> </body> </html> 无论点多少次 最终只触发一次。 ![03e25a4bb06643d0bfa5812af3bfef42.png][] [acfeb92fc8064cea8e296aa5de60968d.png]: https://image.dandelioncloud.cn/pgy_files/images/2024/04/08/3dc2d71056da4c9bba079848e4fbfe17.png [03e25a4bb06643d0bfa5812af3bfef42.png]: https://image.dandelioncloud.cn/pgy_files/images/2024/04/08/1a65cf3497b04b1e8fde491f239f1995.png
相关 防抖、节流 原生js中 简单实现: function a() { console.log('触发了!!!') } // 节流: 规定的时间内 我会带着你远行/ 2023年07月12日 03:34/ 0 赞/ 59 阅读
相关 防抖节流 故心故心故心故心小故冲啊 -------------------- 文章目录 防抖 节流 总结 -------------------- 防抖 r囧r小猫/ 2023年01月12日 11:36/ 0 赞/ 176 阅读
相关 javascript 防抖、节流 一、防抖 > 防抖——触发高频事件后 n 秒后函数只会执行一次,如果 n 秒内高频事件再 次被触发,则重新计算时间; 1. 原理 短时间内多次触发同一事件 左手的ㄟ右手/ 2022年12月18日 15:56/ 0 赞/ 175 阅读
相关 防抖节流 防抖(debounce) 从滚动条监听的例子说起 先说一个常见的功能,很多网站会提供这么一个按钮:用于返回顶部。这个按钮只会在滚动到距离顶部一定位置之后才出现,那么我们 叁歲伎倆/ 2022年11月14日 14:41/ 0 赞/ 236 阅读
相关 防抖、节流 防抖:只要用户触发事件,清除定时器,重新开始记时,避免全局污染,选择使用闭包实现效果。 节流:让用户在一段时间之内,只能执行一次。 判断当前的tag,tag是true允许执 ╰半橙微兮°/ 2022年09月14日 09:23/ 0 赞/ 232 阅读
相关 防抖和节流 1. 防抖 触发高频事件后n秒内函数只会执行一次,如果n秒内高频事件再次被触发,则重新计算时间 \ 思路:每次触发事件时都取消之前的延时调用方法 function 朱雀/ 2022年03月18日 01:44/ 0 赞/ 332 阅读
相关 节流、防抖 节流和防抖主要处理事件处理函数高频调用,减少浏览器负担 节流:尽量减少触发次数,mint-ui上封装了一个方法 <script> var t 向右看齐/ 2022年01月30日 00:39/ 0 赞/ 361 阅读
相关 防抖和节流 防抖和节流 一、什么是防抖 二、防抖使用场景 1.输入框是按键触发请求时 三、什么是节流 四、节流的使用场景 1.鼠标连续 快来打我*/ 2021年09月07日 06:13/ 0 赞/ 517 阅读
相关 防抖节流 通过闭包返回的函数来进行操作,使得变量一直存在 防抖: ![在这里插入图片描述][watermark_type_ZmFuZ3poZW5naGVpdGk_shado 不念不忘少年蓝@/ 2021年07月24日 23:49/ 0 赞/ 481 阅读
相关 防抖节流 vue代码 防抖 // timer用于储存定时器 delayed(){ // 检测定时器 if(this.timer){ 妖狐艹你老母/ 2021年07月24日 18:39/ 0 赞/ 501 阅读
还没有评论,来说两句吧...