• 首页
  • 电影
  • Js
  • 前端
  • 新旅
  • 奇技
  • 网安
  • 歌单
  • 关于
  • 搜索
  • 夜间模式
    ©2013-2025  成长小破站 Theme by OneBlog
    搜索
    标签
    # css # js # uniapp # ps # chrome # 小程序 # javascript # 布局 # typecho # 激活码
  • 首页>
  • Javascript>
  • 正文
  • JS防抖节流

    2023年12月22日 1.5 k 阅读 0 评论 1221 字

    防抖

    在短时间内快速的触发一件事,每次都用新的事件替代上一次,也就是说那么我们只会执行最后一次触发的事件。短时间内快速触达一件事,只会执行最后一次。

    function debounce(func, delay) {
      let timeoutId;
    
      return function(...args) {
        if (timeoutId) {
          clearTimeout(timeoutId);
        }
        timeoutId = setTimeout(() => {
          func.apply(this, args);
        }, delay);
      };
    }
    
    // 使用防抖函数
    const searchInput = document.getElementById('search');
    searchInput.addEventListener('input', debounce(handleSearch, 500));
    
    function handleSearch(event) {
      const query = event.target.value;
      // 发送搜索请求...
    }

    节流

    在短时间内快速触发一件事,当一件事处理函数开始执行的时候,在此期间,不允许重复

    function throttle(func, delay) {
      let lastExecution = 0;
    
      return function(...args) {
        const now = Date.now();
        if (now - lastExecution > delay) {
          func.apply(this, args);
          lastExecution = now;
        }
      };
    }
    
    // 使用节流函数
    window.addEventListener('scroll', throttle(handleScroll, 100));
    
    function handleScroll() {
      // 更新页面元素的位置或执行其他操作...
    }

    总结来说,防抖主要用来处理那些连续高频触发、但只需要最后一次触发结果的场景,如窗口大小改变、输入框内容变化等。而节流更适合于需要一定频率执行函数,但不想让其过于频繁执行的场景,如滚动事件、动画帧更新等。两者都是为了优化性能和提升用户体验。

    本文著作权归作者 [ admin ] 享有,未经作者书面授权,禁止转载,封面图片来源于 [ 互联网 ] ,本文仅供个人学习、研究和欣赏使用。如有异议,请联系博主及时处理。
    JS防抖js节流
    — END —
    首页电影Js前端新旅奇技网安歌单关于
    Copyright©2013-2025  All Rights Reserved.  Load:0.032 s
    豫公网安备41050202000235   豫ICP备18019224号-2
    Theme by OneBlog V3.6.4
    夜间模式

    开源不易,请尊重作者版权,保留基本的版权信息。