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

    函数去抖

    函数调用n秒后才会执行,如果函数在n秒内被调用的话则函数不执行,重新计算执行时间;

    		// 函数去抖
    
    		function deldou(method,delay){
    			var time = null;
    			return function(){
    				var context = this,arg = arguments;
    				clearTimeout(time);
    				time = setTimeout(function(){
    					method.apply(context,arg);
    				},delay);
    			}
    		}
    
    		// 测试
    		function resizeli(){
    			console.log(1);
    		}
    		window.onresize = deldou(resizeli,500);
    

      

    函数节流

    函数预先设定一个执行周期,当调用动作的时刻大于等于执行周期则执行该动作,然后进入下一个新周期。

    // 函数节流
    		function limit(method,duration){
    			var begin = new Date();
    			return function(){
    				var context = this,args = arguments,cur = new Date();
    				if(cur-begin >=duration){
    					method.apply(context,args);
    					begin = new Date();
    				}
    				
    			}
    		}
    
    // 测试
    		function resizeli(){
    			console.log(1);
    		}
    		window.onresize = limit(resizeli,500);
    

      

    需要注意的一点:函数的节流和函数的去抖都是通过减少实际逻辑处理过程的执行来提高事件处理函数运行性能的手段,并没有实质上减少事件的触发次数

    详情参考:https://www.cnblogs.com/caizhenbo/p/6378202.html

  • 相关阅读:
    网络应用框架Apache MINA 一个应用样例(转)
    Linux安装JDK详细步骤(转)
    MySQL主从复制配置
    linux IP 设置
    Log4j的应用实例
    linux 远程复制
    MySQL外部访问配置
    Camshift算法2
    Canny边缘检测
    cvCopy()和cvCloneImage()的区别
  • 原文地址:https://www.cnblogs.com/1833lljy/p/9852404.html
Copyright © 2011-2022 走看看