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

      

  • 相关阅读:
    freemarker模板引擎 常用标签
    SSH面试题
    JAVA 2013面试题-下
    JAVA 2013面试题-上
    String和StringBuffer
    http请求和http响应详细解析
    一种将汉字转换为拼音的更简单的方法
    中文字符串排序
    UIControl类控件统一管理
    日期转换
  • 原文地址:https://www.cnblogs.com/aiyr/p/10185762.html
Copyright © 2011-2022 走看看