当前位置:   article > 正文

js节流和防抖_throttle handle audio time

throttle handle audio time

节流(Throttle)

按照设定的时间固定执行一次函数,比如200ms一次。注意:固定就是你在mousemove过程中,执行这个节流函数,它一定是200ms(你设定的定时器延迟时间)内执行一次。没到200ms,一定会返回,没有执行回调函数的。

防抖(Debounce)

抖动停止后的时间超过设定的时间时执行一次函数。注意:这里的抖动停止表示你停止了触发这个函数,从这个时间点开始计算,当间隔时间等于你设定时间,才会执行里面的回调函数。如果你一直在触发这个函数并且两次触发间隔小于设定时间,则一定不会到回调函数那一步。

  1. <body>
  2. <div>节流</div>
  3. <script>
  4. window.onload = function () {
  5. window.addEventListener('scroll',throttleHandle(throttle),false); //监听绑定事件
  6. }
  7. //节流函数
  8. function throttleHandle (fn) {
  9. let timer = null,
  10. booleanVal = true; // 声明一个变量标志做判断
  11. return function () {
  12. if (!booleanVal) {
  13. return
  14. } //如果事件正在执行,那么就返回,将布尔值改为false
  15. booleanVal = false;
  16. //事件未执行,创建事件
  17. timer = setTimeout(function() {
  18. fn.apply(this,arguments);
  19. booleanVal = true; //事件执行完将布尔值改回
  20. },300)
  21. }
  22. }
  23. //执行函数
  24. function throttle() {
  25. var scrollNum = document.documentElement.scrollTop || document.body.scrollTop;
  26. console.log(scrollNum);
  27. }
  28. </script>
  29. </body>
  1. <body>
  2. <button id="debounce">防抖</button>
  3. <script>
  4. window.onload = function () {
  5. let obtn = document.getElementById('debounce'); //获取按钮
  6. obtn.addEventListener('click',debounceHandle(debounce),false); //监听绑定事件
  7. }
  8. //防抖函数
  9. function debounceHandle (fn) {
  10. let timer = null;
  11. return function () {
  12. clearTimeout(timer); //如果存在事件就清除定时器
  13. timer = setTimeout(function(){ //如果不存在那么就开启定时器
  14. fn.call(this,arguments);
  15. },300)
  16. }
  17. }
  18. //执行函数
  19. function debounce() {
  20. console.log('防抖');
  21. }
  22. </script>
  23. </body>

 

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/Cpp五条/article/detail/384063
推荐阅读
相关标签
  

闽ICP备14008679号