js的防抖和节流是前端面试经常会问到的知识点,今天结合moba类游戏来解释一下。
1.防抖:
持续触发不执行,不触发的一段时间后执行。就是指触发事件后在 n 秒内函数只能执行一次,如果在 n 秒内又触发了事件,则会重新计算函数执行时间。
就像王者中的回城一样,每次回城都需要一段时间的读条,读完条之后才执行回城这个操作。若在读条的时候再次触发回城,那么读条会被打断并且重新开始读条。这就是防抖。
实际应用:
//如下,持续触发 scroll 事件时,并不执行 handle 函数,当 1000 毫秒内没有触发 scroll 事件时,才会延时触发 scroll 事件
function debounce(fn, wait) {
var timeout = null;
return function() {
if(timeout