函数防抖和函数节流的知识,内容包括简介、函数节流、函数防抖。

一、简介

玩过 5 V 5 mobile 游戏的都知道,它里面有「技能冷却」和「回城」机制,函数节流和函数防抖对应这两个东西

  • 函数节流和“技能冷却”类似,你做了一个操作之后要等一段时间后才能再操作
  • 函数防抖和“回城”类似,你要回城了,如果中途被打断,再次回城要重新计时开始

二、函数节流

  1. let $button = document.querySelector('button')
  2. let fn = ()=> console.log('我放技能了')
  3. let cd = false
  4. $button.onclick=()=>{
  5. if(!cd){
  6. fn()
  7. cd = true
  8. setTimeout(()=>cd = false,1000)
  9. }
  10. }

三、函数防抖

  • 带着一起做
  1. let $button = document.querySelector('button')
  2. let fn = ()=> console.log('我回城了')
  3. let timeoutID = null
  4. $button.onclick=()=>{
  5. if(timeoutID){
  6. window.clearTimeout(timeoutID)
  7. }
  8. timeoutID = setTimeout(()=>{
  9. fn()
  10. timeoutID = null
  11. },1000)
  12. }

「@浪里淘沙的小法师」