Skip to content
Menu
编程侠
  • 首页
  • 资讯
    • 手机
  • 博客
    • 博客vue
    • 博客PHP
  • Q我
编程侠
2021-01-212021-01-21

前端js节流

节流

如果短时间内大量触发同一事件,那么在函数执行一次之后,该函数在指定的时间期限内不再工作,直至过了这段时间才重新生效。

eg:在我们用搜索框的input事件做异步请求实现根据用户输入的字符展示出以该字符开头的数据时,发现事件触发的频率太高了!此时又不能像节流那样一直输入就一直不提示,我们需要的是在触发了一次之后,要间隔一段时间后才再次触发。这样就可以用节流来优化这种场景。

function throttle(fn,delay){
    let valid = true
    return function() {
       if(!valid){
           return false 
       }
        valid = false
        setTimeout(() => {
            fn()
            valid = true;
        }, delay)
    }
}
document.getElementById('input').addEventListener('keyup',throttle(()=>{console.log('throttle')},300))

这里借助setTimeout和一个状态位valid来表示当前函数是否处于工作状态就简单的简单了实现节流。此时,搜索框就实现了正常频率的根据用户输入的字符展示出以该字符开头的数据。

最新

  • 831密码安全口令
  • 链接跳转到百度地图的指定地址
  • 云服务提到的99.99%的服务可用性,这是个什么概念?
  • 兼容IE的CSS竖排文字代码
  • 网页灰度

标签

831 a标签 canvas clone csrf echarts filter GB2312 grayscale Hello html2canvas iframe prism Unicode UTF-8 wordpress world XSS 不触发 云服务 代码雨 大数据 异常 手机号 打印 拼多多 数组 文字转语音 朗读 正则 深浅拷贝 热力图 竖排 签名验证 编码 编程圈 置灰 背代码 节流 速度 链接 链接跳转 键盘 防抖 验证

友情链接

  • staggering-beauty
  • 编程侠
©2025 编程侠 渝ICP备20006693号-4