zoukankan      html  css  js  c++  java
  • 去抖函数 节流函数

    去抖函数:

         function qudou(cb){
    		console.log('uuuuuuuuu')
    		var timer=null;
    		return function(){
    			console.log(timer)
    			clearTimeout(timer)
    			timer = setTimeout(function(){
    				cb()
    			},1000);
    		}
    	}
    	function test(){
    		console.log(8888)
    	}
    	document.getElementById('btn').addEventListener('click',qudou(test))

    为什么这么写,而不是
    	document.getElementById('btn').addEventListener('click',function(){
    		qudou(test)()
    	})
    

      把代码复制过去,跑一下就知道了。这里的知识点:闭包。必须把timer设置为全局变量,否则clearTimeout每次清除的都将是函数内部本次的settimeout,而不是上一次的。(上面代码不是用的全局变量,用的闭包代替)

      

    节流函数

    function jieliu(cb){
    	console.log('uuuuuuuuu')
    	var bTime = new Date();
    	return function(){
    		current = new Date()
    		if(current-bTime>=1000){
    			bTime = current;
    			cb()
    		}
    	}
    }
    function test(){
    	console.log('kkkk')
    }
    document.getElementById('btn').onclick = jieliu(test);
    

      

  • 相关阅读:
    Java基础——银行例题
    JavaEE——HTML5绘画
    Java基础——构造器
    HTML5-GPS定位
    HTML+CSS+JavaScript小例题
    JDBC综合例题
    java并发编程(更新)
    struts2配置文件的解释
    排序
    集合
  • 原文地址:https://www.cnblogs.com/aiyr/p/10185762.html
Copyright © 2011-2022 走看看