• 技术文章 >web前端 >js教程

    节流阀和去抖动的基本实现方法介绍

    不言不言2019-04-13 11:53:00转载928

    本篇文章给大家带来的内容是关于节流阀和去抖动的基本实现方法介绍,有一定的参考价值,有需要的朋友可以参考一下,希望对你有所帮助。

    节流阀throttle

    触发的事件以周期的形式去执行,而非实时。如滴水的水龙头。

    function throttle (fn, delay) {
      // 利用闭包变量时效性
      let timeout
      let arg
      return function () {
        arg = arguments
        if (!timeout) {
          timeout = setTimeout(() => {
            fn.apply(this, arg)
            timeout = null
          }, delay)
        }
      }
    }
    // demo
    /*
    var test = throttle(function (a) {console.log(a)}, 1000)
    test(1) // 不执行
    test(2) // 不执行
    test(3)
    => 3
    test = null // 不需要时释放内存
    */

    去抖动debounce

    事件最后一次触发的N毫秒后触发,如电梯门。

    function debounce (fn, delay){
      let timeout
      return function(){
        const args = arguments
        clearTimeout(timeout)
        timeout = setTimeout(() => {
          fn.apply(this, args)
        }, delay)
      }
    }
    // 用法同throttle

    以上就是节流阀和去抖动的基本实现方法介绍的详细内容,更多请关注php中文网其它相关文章!

    声明:本文转载于:segmentfault,如有侵犯,请联系admin@php.cn删除
    专题推荐:javascript
    上一篇:JavaScript常用数组的操作方法总结(代码) 下一篇:jQuery过时了吗?还有学的必要吗?
    大前端线上培训班

    相关文章推荐

    • JavaScript中function的详细理解(附代码)• JavaScript实现双向链表(代码示例)• JavaScript中的强制类型转换的方法介绍• JavaScript异步加载的详细介绍(附代码)• JavaScript常用数组的操作方法总结(代码)

    全部评论我要评论

  • 取消发布评论发送
  • 1/1

    PHP中文网