美文网首页
三分钟了解函数防抖

三分钟了解函数防抖

作者: XiaoAM | 来源:发表于2019-11-03 19:26 被阅读0次

鼠标滚动(scroll)、调整窗口大小(resize)、敲击键盘(keyup)这类事件在触发时往往频率极高,这时事件对应的回调函数会反复执行,如果回调函数内包含复杂的运算逻辑或者DOM操作等,就可能造成浏览器的不流畅。而防抖和节流就是为了优化此类问题的,两者并不会减少事件的触发,而是减少事件触发时回调函数的执行次数。
下面我们就先来重点了解以下防抖吧!

防抖:事件短时间内高频次触发,但是只有在规定时间内不再触发后才执行回调
原理:防抖是维护一个计时器,规定在delay时间后触发函数,但是在delay时间内再次触发的话,都会清除当前的 timer 然后重新设置超时调用,即重新计时。这样一来,只有最后一次操作能被触发。
应用场景:

  1. 用户在输入框中连续输入一串字符后,只会在输入完后去执行最后一次的查询请求,这样可以有效减少请求次数,节约请求资源;
    2.window的resize、scroll事件,不断地调整浏览器的窗口大小、或者滚动时会触发对应事件,防抖让其只触发一次
    下面直接看代码
<script>
        chengeFs()
        function chengeFs(){
            document.documentElement.style.fontSize = document.documentElement.clientWidth / 10 + 'px';

        }
        var timer = null;
        window.onresize = function () {
            if(timer){
                clearTimeout(timer);
                timer = null;
            }
            timer = setTimeout(chengeFs,300)
        }
    </script>

相关文章

  • javaScript 防抖函数

    一. 防抖函数的定义与使用 防抖函数的定义 防抖函数的调用 二. 防抖函数应用场景 其实在HTML 和javaSc...

  • Javascript 基础

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

  • 三分钟了解函数防抖

    鼠标滚动(scroll)、调整窗口大小(resize)、敲击键盘(keyup)这类事件在触发时往往频率极高,这时事...

  • JS函数防抖

    JS 中的函数防抖 一、什么是函数防抖? 概念: 函数防抖(debounce), 就是指触发事件后,在 n 秒内函...

  • 防抖与节流

    1. 防抖函数 1.1 防抖定义: 函数防抖(debounce):当持续触发事件时(例如mousemove),一定...

  • 函数节流与函数防抖

    函数节流与函数防抖的区别JS魔法堂:函数节流(throttle)与函数去抖(debounce)函数的防抖与节流 自...

  • JavaScript中的防抖(debounce)和节流(thro

    防抖函数 节流函数

  • JS封装一个防抖函数与节流函数

    防抖函数 节流函数

  • 函数操作v1.0.0

    目录 函柯里化函数节流函数防抖 正文 函柯里化 函数节流 函数防抖

  • 前端常见面试题(十五)@郝晨光

    什么是函数防抖和函数节流?有什么区别? 概念 函数防抖 函数防抖,就是指触发事件后在 n 秒内函数只能执行一次,如...

网友评论

      本文标题:三分钟了解函数防抖

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