博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
函数防抖和函数节流(限制接口调用频率)
阅读量:6681 次
发布时间:2019-06-25

本文共 961 字,大约阅读时间需要 3 分钟。

一.函数防抖与函数节流

  • 概念:(作用相同-->都是限制任务触发的频率)
    • 函数防抖debounce:在特定的时间内,没有触发特定条件,就执行一次任务
    • 函数节流throttle: 在特定的时间内,无论触发多次条件,仅执行一次任务
  • 区别:
    • 函数防抖有可能在很长时间内一次任务都不执行,只有最后一次延时时间到达之后执行一次
    • 函数节流在特定时间内会固定触发一次任务,并且是规律的
  • 应用场景:
    • 关键字搜索,限制接口调用频率(防抖)
    • 表单验证,验证邮箱的格式,停止输入时在做验证(防抖)
    • onresize onscroll onmousemove(节流) ---> 对于高频事件要做触发频率的显示

二. 防止发送请求的频率(防抖)

// 函数防抖(固定时间内没有触发条件,就执行一次任务)inputHandle () {  clearTimeout(this.timer)  this.timer = setTimeout(async () => {    let res = await request('goods/qsearch', 'get', {      query: this.keyword    })    this.searchResult = res.data.message  }, 1000)}复制代码

三.防止发送请求的频率(节流)

// 函数节流(固定时间内无论触发几次,仅执行一次任务)keywordSearch () {  if (this.isLoading) {    // 终止后续代码的执行,终止请求    return  }  this.isLoading = true  setTimeout(async () => {    let res = await request('goods/qsearch', 'get', {      query: this.keyword    })    this.searchResult = res.data.message    // 重新打开发送请求的开关    this.isLoading = false  }, 1000)}复制代码

转载于:https://juejin.im/post/5d07ae20e51d45590a445b36

你可能感兴趣的文章
<進階&高級>ADT線上視頻&PPT課件
查看>>
iOS md5加密
查看>>
测试项目
查看>>
第一章ASP.NET SignalR简介
查看>>
SSH
查看>>
使用python3来生成安全的随机密码
查看>>
41-50(UIApplication和delegate,UIApplicationMain,UIWindow,程序启动的完整过程,控制器view的延迟加载)...
查看>>
HTTP服务器实现
查看>>
2017.03
查看>>
95Cloud 可信云计算管理系统(IaaS) ———持续数据保护(CDP)简介
查看>>
S7700交换机组网部分终端上不了网故障排查
查看>>
Scala开始开发工具
查看>>
vs2010 mvc3
查看>>
RocketMQ 源码分析 高可用
查看>>
我的友情链接
查看>>
CentOS 7.5.1804 安装配置docker
查看>>
我的友情链接
查看>>
浏览器的缓存原理
查看>>
Swift::1::变量和常量
查看>>
SFB 项目经验-79-如何升级Exchange 2016 CU10高可用 To CU11
查看>>