• 函数防抖和节流


    1、函数防抖,在一定时间段不断触发,只会执行最后一次的函数

    <body>
        <button id='btn'>点击</button>
        <script>
            //函数防抖,在一定时间段不断触发,只会执行最后一次的函数
    
            function debounce(fn) {
                let timer = null;
                return function () {
                    clearTimeout(timer)
                    timer = setTimeout(() => {
                        fn.call(this,arguments[0]);
                    }, 1000);
                }
            }
            let btn = document.querySelector('#btn');
            btn.onclick = debounce(print)
    
            function print(e) {
                console.log(e)
            }
        </script>
    </body>

    2、函数节流,在一定时间段触发,就像去超市买东西,老板决定超市在星期一到星期天中打折一次,员工只能每个星期打折一次,不能多次打折

    <body>
        <button id='btn'>点击</button>
        <script>
            //函数节流,在一定时间段多次点击只触发一次
            function throttle(fn) {
                let flag = false;
                return function () {
                    if (flag) {
                        return
                    }
                    flag = true
                    setTimeout(() => {
                        fn.call(this, arguments[0])
                        flag = false
                    }, 1000);
                }
            }
            let btn = document.querySelector('#btn');
            btn.addEventListener('click', throttle(print))
    
            function print(e) {
                console.log(e)
            }
        </script>
    </body>
    

      

  • 相关阅读:
    筛选法求素数
    C/C++经典面试题目
    操作系统笔试面试基本内容
    Win32/MFC的基本概念
    STL采用的标准模板库
    数据结构基本概念
    SQL基础语句
    C/C++基础概念
    计算机网络基础概念
    流水作业 批作业调度
  • 原文地址:https://www.cnblogs.com/uimeigui/p/14324319.html
Copyright © 2020-2023  润新知