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);
    

      

  • 相关阅读:
    windows安装kafka
    excel打开utf-8的csv乱码
    laravel 记录慢sql日志
    php ftp连接的坑
    公用辅助方法
    ubuntu重置网络配置
    php socket
    docker ftp配置多个用户
    php aes-ecb-128位加密
    redis集群 哨兵模式
  • 原文地址:https://www.cnblogs.com/aiyr/p/10185762.html
Copyright © 2011-2022 走看看