龙空技术网

JavaScript 基础——防抖与节流

Mondo 87

前言:

现在我们对“js节流实现”可能比较珍视,看官们都想要了解一些“js节流实现”的相关知识。那么小编同时在网络上搜集了一些有关“js节流实现””的相关资讯,希望朋友们能喜欢,咱们一起来了解一下吧!

防抖在一段时间内函数事件只会执行一次,如果在这段时间内事件被再次触发,则从头开始计算触发时间每次触发事件时都清除之前的延时一次点击多次,只执行最后一次

function debounce(fn, deplay = 2000) {    let time = null    return function () {        clearTimeout(time)        time = setTimeout(() => {            fn.call(this, arguments)        }, deplay)    }}
节流事件多次执行触发,但是在一段时间只会执行一次,节流会稀释函数的执行频率每次触发事件时都判断当前是否有等待执行的延时函数一次点击多次,只执行第一次点击
function throttle(fn, deplay = 5000) {    let predeplay = 0    return function() {        let now = +new Date()        if (now - predeplay > deplay) {            fn.apply(this, arguments)            predeplay = now        }    }}

- END -

标签: #js节流实现