开发者社区> 问答> 正文

节流是什么

节流是什么

展开
收起
问答小能手! 2021-02-10 17:12:24 4446 0
1 条回答
写回答
取消 提交回答
  • 来自昆仑山,真名陆离。

    节流:每隔一段时间后执行一次,也就是降低频率,将高频操作优化成低频操作,通常使用场景: 滚动条事件 或者 resize 事件,通常每隔 100~500 ms执行一次即可。
    实现逻辑:规定在一个单位时间内,只能触发一次函数。如果这个单位时间内触发多次函数,只有一次生效 实现代码:

    //定时器
    const throttle = function (func, delay) {
      let timeoutId = null;
      return function (...args) {
        if (!timeoutId) {
          timeoutId = setTimeout(function () {
            func.apply(this, args);
            timeoutId = null
          }, delay);
        }
      }
    }
    
    // 时间戳
    const throttle = function(func, delay) {
        let prev = Date.now();
        return function(...args) {
            let now = Date.now();
            if (now - prev >= delay) {
                func.apply(this, args);
                prev = Date.now();
            }
        }    
    }
    
    
    2021-02-10 17:14:11
    赞同 展开评论 打赏
问答地址:
问答排行榜
最热
最新

相关电子书

更多
低代码开发师(初级)实战教程 立即下载
冬季实战营第三期:MySQL数据库进阶实战 立即下载
阿里巴巴DevOps 最佳实践手册 立即下载