视频直播源码,js实现节流和防抖

防抖:

就是指连续触发事件但是在设定的一段时间内中只执行最后后一次,例如:设定1000毫秒执行,当你触发事件了,他会1000毫秒后执行,但是在还剩500毫秒的时候你又触发了事件,那就会重新开始1000毫秒之后在执行。

记忆核心:重新开始

应用场景:搜索框搜索输入 文本编辑器实时保存


  let timerId = null
  document.querySelector('.int').onkeyup = function(){
    // 防抖
    if(timerId!== null){
      clearInterval(timerId)
    }
    timerId = setTimeout(() => {
      console.log("我是防抖");
    }, 1000);
  }

节流:

就是指连续触发事件但是在设定的一段时间内中只执行一次函数。例如:设定1000毫秒执行,那你在1000毫秒触发在多次,也只在1000毫秒后执行一次

记忆方法:不要打断我

应用场景:高频事件 例如 快速点击,鼠标滑动,resize事件,scroll事件。下拉加载 视频播放等。


  let timerId = null
  document.querySelector('.int').onmouseover = function(){
    // 节流
    if(timerId!== null){
     return
    }
    timerId = setTimeout(() => {
      console.log("我是节流");
      timerId = null
    }, 1000);
  }

其实,我开发一般用lodash库,利用里面的debounce(防抖)和throttle(节流)来做的。

以上就是视频直播源码,js实现节流和防抖, 更多内容欢迎关注之后的文章

最新文章

  1. Cheat sheets
  2. 【python游戏编程之旅】第六篇---pygame中的Sprite(精灵)模块和加载动画
  3. 进程状态转换、CPU调度算法
  4. POJ 4046 Sightseeing 枚举+最短路 好题
  5. FZU 2016 summer train I. Approximating a Constant Range 单调队列
  6. 使用RMAN迁移文件系统数据库到ASM
  7. ANDROID_MARS学习笔记_S01原始版_023_MP3PLAYER005_用广播BroacastReciever实现后台播放不更新歌词
  8. JSTL-core核心代码标签库中的forEach,remove, forTokens,choose,when,otherwise,redirect 标签
  9. 【单页应用】view与model相关梳理(转载)
  10. RedHat7上安装MariaDB
  11. XML的四种解析器原理及性能比较
  12. 交互设计师谈颠覆式创新 | Think different
  13. KMP算法之从next[]到nextVal[]
  14. hashMap遍历方式
  15. 【面试题】由HashMap引发的一系列追问
  16. CImage 对话框初始化时候显示透明 PNG
  17. CSS选择器之基本选择器总结
  18. Go语言二叉树定义及遍历算法实现
  19. vue 动态加载组建
  20. sqler sql 转rest api 源码解析(四)macro 的执行

热门文章

  1. 服务调用OpenFeign
  2. 2 .NET Core笔试题
  3. 调用后台接口实现Excel导出功能以及导出乱码问题解决
  4. 【TS】函数和函数类型
  5. echarts的颜色渐变
  6. GoLang 的协程调度和 GMP 模型
  7. CF750H New Year and Snowy Grid
  8. JZOJ 5062. 【GDOI2017第二轮模拟day1】航海舰队
  9. Philips and Calculator
  10. MRI病变能否预测已获临床缓解的早期RA未来放射学进展