码迷,mamicode.com
首页 > 其他好文 > 详细

防抖和节流

时间:2020-05-04 17:31:49      阅读:62      评论:0      收藏:0      [点我收藏+]

标签:throttle   UNC   set   doc   事件   一个   func   cti   记录   

1.什么是函数节流?

函数节流,一个函数执行一次后,只有大于设定的执行周期后才会执行第2次。

-换句话说:有个需要频繁触发函数,出于性能优化角度,在规定时间内,只让函数触发的第一次生效,后面不生效。

function throttle(fn,delay){

// 记录上一次函数触发时间

var lastTime = 0;

return function (){

  // 记录当前函数触发的时间

var nowTime = Date.now();

if(nowTime - lastTime > delay){

fn();

//同步时间

lastTime = nowTime;

}

}

}

 

document.onscroll = throttle(function(){ console.log(‘scroll事件被触发了‘+Date.now());},200)

2.什么是函数防抖?

一个需要频繁触发的函数,在规定时间内,只让最后一次生效,前面的不生效

function debounce(fn,delay){

// 记录上一次的延时器

var timer = null;

return function(){

// 清除上一次的延时器

timer= setTimeout(function(){ fn.apply(this);},delay);

}

}

document.getElementById(‘btn‘).onclick = debounce (function(){console.log(‘点击事件触发’+Date.now();)},1000);

防抖和节流

标签:throttle   UNC   set   doc   事件   一个   func   cti   记录   

原文地址:https://www.cnblogs.com/web-zxq/p/12826923.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!