JS 节流

作者: 云龙789 | 来源:发表于2019-02-21 19:37 被阅读0次
<script>
    /**
     *
     * @param idle number 空闲时间 单位毫秒
     * @param action 请求关联函数,实例用用需要调用的函数
     */
    // const debounce = (fn, time) => {
    //     let timeout;
    //
    //     return function () {
    //         const functionCall = () => fn.apply(this, arguments);
    //
    //         clearTimeout(timeout);
    //         timeout = setTimeout(functionCall, time);
    //     }
    // }
//  上面的 debounce  和下面的结果都是一样的
   let debounce =  function( fn,delay) {
        let timerId;
        return function (...args) {
            if (timerId) {
                clearTimeout(timerId);
            }
            timerId = setTimeout(() => {
                fn(...args);
                timerId = null;
            }, delay);
        }
    }
    window.addEventListener('keyup', debounce((e) => {
        console.log(e.code);
    }, 300));
</script>

debounce 函数是从松手那一刻开始,300 毫秒之后才会打印出东西

image.png

不论你按多少此按键,只会打印最后一次按的键。
达到的效果就是按键在300毫秒的时间内,不管按多少次按键,都只会限制最后一次按的,
但是300秒之后,可以再次按

  • 如果是手机段想要在手触摸按钮后,松手 1秒 才可以再次操作,可以这样
document.getElementById('button').ontouchstart = debounce((e) => {
        console.log(e);
    }, 1000)

相关文章

  • js节流函数

    JS节流函数 1. 节流函数的定义 2. 节流函数的用法

  • 前端性能优化-浅谈js防抖和节流

    浅谈js防抖和节流

  • js节流

  • js节流

    function throttle(func, wait) { var timeout, context, ...

  • JS 节流

    Throttling and debouncing in JavaScript Debounce Deep Div...

  • js节流

    节流(throttle) 第一步 实现一个函数,返回一个函数func参数,第一个参数是一个函数,第二个参数是一个数...

  • 防抖和节流

    一、防抖:只执行最后一次 js防抖方法 一、节流:控制执行次数 节流

  • 微信小程序防抖、节流的使用

    1、防抖、节流函数的封装 在utils文件夹下新建utils.js文件,然后写入节流和防抖函数 在.js页面引入并使用:

  • js函数节流、防抖

    js 函数节流、防抖 新建index.js将下面代码复制到index.js中

  • 函数防抖和节流

    前言:函数防抖和函数节流都是用于优化高频率执行js的一种手段 节流 函数节流:是指一定时间内js方法只跑一次应用场...

网友评论

    本文标题:JS 节流

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