2021-02-28

2021-03-01  本文已影响0人  转移到CSDN名字丹丹的小跟班

js

所谓防抖,就是指触发事件后在 n 秒内函数只能执行一次,如果在 n 秒内又触发了事件,则会重新计算函数执行时间。
防抖核心函数

function debounce(fn, delay) {
  let timeout = null;
  return function() {
    // 保存this和参数
    let context = this
    let args = arguments
    if(timeout) {
      clearTimeout(timeout) //频繁触发则清除上一次,只执行最后一次
    }
    timeout = setTimeout(() => {
      fn.apply(context, args)
    },delay)
  }
}

所谓节流,就是指连续触发事件但是在 n 秒中只执行一次函数。节流会稀释函数的执行频率。
节流核心函数

function throttle(fn, timer) {
    let start = new Date()
    let timeout = null
    return function() {
        let end = new Date
        let context = this
        clearTimeout(timeout)
        if (end - start >= timer) {
            fn.apply(context)
            start = end
        }
    }
}

get 请求传参长度的误区

上一篇 下一篇

猜你喜欢

热点阅读