首页 > 其他分享 >防抖与节流

防抖与节流

时间:2023-08-19 15:23:07浏览次数:31  
标签:function 防抖 节流 timer let flg

防抖与节流的本质其实是差不多的,都是为了减少调用频率,提高前端性能。

防抖是在一段时间内,只执行最后一次的操作。

节流是在执行事件时,每隔一段时间有规律进行运行。

防抖:一般用于input输入框查询事件,或者按钮点击事件较多

    <button id="btn">提交</button>
    <script>
       let btn = document.getElementById('btn')
       let timer = null
       btn.addEventListener('click', function() {
           if (timer) {
               clearTimeout(timer)
           }
           timer = setTimeout(() => {
                console.log(1)
            }, 1000)
       })
    </script>

 节流:一般用于滚动事件较多

    <style>
        body{
            height: 2000px;
        }
    </style>
    <script>
        window.onscroll = fun(function() {
            console.log('节流输出')
        }, 2000)
        let timer = null
        function fun(fn, delay) {
            let flg = true
            return function() {
                if (flg) {
                    timer = setTimeout(() => {
                        fn.call(this)
                        flg = true
                    }, 1000)
                }
                flg = false
            }
        }
    </script>

  

 

标签:function,防抖,节流,timer,let,flg
From: https://www.cnblogs.com/qiuchuanji/p/17642504.html

相关文章

  • 防抖节流axios
    importaxiosfrom'axios'functionrequest(config){constinstance=axios.create({baseURL:'http://localhost:3000/api',timeout:10000})//防抖constdebounceTokenCancel=newMap()instance.interceptors.request.use(co......
  • 手写防抖
     目录前言导语代码部分总结前言我是歌谣我有个兄弟巅峰的时候排名c站总榜19叫前端小歌谣曾经我花了三年的时间创作了他现在我要用五年的时间超越他今天又是接近兄弟的一天人生难免坎坷大不了从头再来歌谣的意志是永恒的放弃很容易但是坚持一定很酷导语手写防抖编辑代码......
  • vue自定义指令(防抖)
    importVuefrom'vue'/***按钮防抖,300毫秒内只触发一次请求*区分了一下传参和不传参的情况*///不传参数,用法:v-debounce="test_debounce"Vue.directive('debounce',{inserted:function(el,binding){lettimerel.addEventListener('click',......
  • 摄像中的防抖技术
    简介手持成像设备拍照的过程中,很难控制设备处于完全保持静止状态,特别是使用长曝光(比如夜景拍照)或者长焦镜头进行拍摄(抖动对应的实际位移大),很容易由于相机抖动带来运动模糊。在拍摄视频的过程中,机身抖动也会导致视频画面的连续稳定性降低,特别是一些抖动比较厉害的拍摄场景(比如运动......
  • 节流与防抖
    本文可以配合本人录制的视频一起食用作用节流和防抖是前端开发中常用的优化技术,主要用于优化一些高频触发的事件。字面理解节流与防抖,先从字面上理解一下,节流就是节制流入或流出,在前端方面我个人理解一下,指的是节制功能或请求的触发次数,所以节流函数字面上的意思就是防止功能......
  • 前端性能优化的利器 ——— 浅谈JavaScript中的防抖和节流
    防抖和节流函数是工作中两种常用的前端性能优化函数,今天我就来总结一下什么是防抖和节流,并详细说明一下如何在工作中应用防抖和节流函数什么是防抖和节流?在JavaScript中,防抖(debounce)和节流(throttle)是用来限制函数执行频率的两种常见技术。防抖(debounce)是指在某个时间段内......
  • js实现输入框防抖功能
    <!DOCTYPEhtml><htmllang="en"><head><metacharset="UTF-8"><metahttp-equiv="X-UA-Compatible"content="IE=edge"><metaname="viewport"content="width=......
  • 深入理解TCP作为面向字节流协议的工作原理
    TCP(传输控制协议)是互联网中广泛使用的传输层协议,它负责可靠地传输数据流。一个重要的特性是TCP被称为面向字节流的协议。本文将详细介绍TCP作为面向字节流协议的含义,其工作原理以及与面向消息的协议的区别。1.什么是TCP面向字节流协议?TCP作为面向字节流的协议意味着数据在发送端......
  • 什么是防抖和节流
    防抖和节流是前端开发中常用的两种性能优化技术。防抖:(Debouncing)的含义是指在一定时间内,多次触发同一个事件,只执行最后一次操作。节流(Throttling)的含义是指在一定时间内,多次触发同一个事件,只执行第一次操作。在防抖函数和节流函数中,都使用了闭包来保存定时器变量timer和......
  • 节流函数
    防抖和节流都是对高频事件进行优化,节流是在规定的时间内执行一次操作1window.onscroll=throttle(function(){2alert(1)3},1000)4functionthrottle(fn,delay){5lett=true;6returnfunction(){......