美文网首页
防抖和节流

防抖和节流

作者: darkTi | 来源:发表于2020-06-02 17:04 被阅读0次

一、防抖(debounce)

  • 当持续触发某一事件,停止触发后,在规定的时间到达时调用一次函数;比如:你在持续点击某一元素,只有当你点击停止后,在规定的时间到达后,才会调用一次回调函数,以减少浏览器的负担;
//防抖处理
function debounce(fn,wait){
  var timeout = null
  return function(){
    if(timeout !== null)  clearTimeout(timeout)
    timeout = setTimeout(fn,wait)  // 关键句
  }
}
//你要执行的操作
function handle(){
  console.log('你执行了')
}
//绑定到需要防抖处理的元素上
window.addEventListener('click', debounce(handle, 3000))

点击停止后,会打印出一次“你执行了”~~(每次都会触发事件,但只有在规定时间后才会调用事件)

二、节流(throttle)

  • 持续触发某一事件时,不会每次都去调用函数去执行,而是我们规定在一个时间段内只调用一次函数;比如,你在持续滚动页面的时候,不让它每次都会调用函数,而是规定它每隔多少秒去调用一下函数;
//利用时间戳
var throttle = function(func, delay) {            
  var prev = Date.now();
  return function() {  
    var that = this;                
    var args = arguments;                
    var now = Date.now();  
    if (now - prev >= delay) {
      func.call(that, args);                    
      prev = Date.now();                
    }            
  }        
}        
function handle() {            
  console.log(Math.random());        
}        
window.addEventListener('click', throttle(handle, 1000));

区别:函数防抖只会在事件最后一次触发后去调用一次函数;函数节流是,不管事件触发多么频繁,都会保证在规定时间内执行一次回调函数;

相关文章

  • 谈谈js中的节流和防抖函数

    关于节流和防抖,这篇文章说的很好了,深入lodash源码分析防抖和节流深入篇 | Lodash 防抖和节流是怎么实...

  • JavaScript防抖和节流

    1. 认识防抖和节流 1.1. 对防抖和节流的认识 防抖和节流的概念其实最早并不是出现在软件工程中,防抖是出现在电...

  • 前端性能优化-浅谈js防抖和节流

    浅谈js防抖和节流

  • Javascript 基础

    1、函数防抖和函数节流 【《javascript高级程序设计》里,函数节流是这里讲的函数防抖。】函数防抖: 在事件...

  • js 防抖 节流

    节流 防抖1 防抖2

  • 2019-03-27

    js的防抖和节流 据我所知防抖和节流都是为了优化作用,减轻浏览器和服务端的负担,防抖和节流俩个的英文要记住: de...

  • js的防抖和节流

    js的 防抖(debounce)和 节流(throttle ) 防抖和节流一般用于高频触发事件,属于浏览器性能优化...

  • 手写防抖和节流函数实现

    1. 认识防抖和节流函数 防抖和节流的概念其实最早并不是出现在软件工程中,防抖是出现在电子元件中,节流出现在流体流...

  • 实现防抖和节流

    一、认识防抖和节流函数 防抖和节流的概念其实最早并不是出现在软件工程中,防抖是出现在电子元件中,节流出现在流体流动...

  • 2019-04-24关于节流和防抖

    节流: 应用场景: 防抖: 应用场景: 1.节流 2.防抖

网友评论

      本文标题:防抖和节流

      本文链接:https://www.haomeiwen.com/subject/henpihtx.html