美文网首页前端大讲堂让前端飞Web前端之路
说说前端的防抖和节流以及最简单的实现

说说前端的防抖和节流以及最简单的实现

作者: 前端大课堂 | 来源:发表于2019-06-23 12:11 被阅读7次

防抖和节流在前端是很常见的知识点,并且也是常见的面试题。 

00 背景

防抖和节流在前端中是应用很常见的,特别是在 PC 端页面的开发中。 

01 节流

简单说几个场景,监听滚动事件和鼠标移动事件。这两个事件是触发比较非常频繁,一次鼠标移动触发上百次的 mousemove. 

这时必须用节流函数。 规定在一定的时间内触发一次。 

如何理解节流函数,throttle 接收两个参数,一个要执行的函数,一个是一定的时间内。 

function throttle(fn, interval = 300) {

    let canRun = true;

    return function () {

        if (!canRun) return;

        canRun = false;

        setTimeout(() => {

            fn.apply(this, arguments);

            canRun = true;

        }, interval);

    };

}

02 防抖

function debounce(fn, interval = 300) {

    let timeout = null;

    return function () {

        clearTimeout(timeout);

        timeout = setTimeout(() => {

            fn.apply(this, arguments);

        }, interval);

    };

}

相关文章

  • 说说前端的防抖和节流以及最简单的实现

    防抖和节流在前端是很常见的知识点,并且也是常见的面试题。 00 背景 防抖和节流在前端中是应用很常见的,特别是在 ...

  • 前端性能优化:手写实现节流防抖

    前端性能优化:手写实现节流防抖 本文首发于 前端性能优化:手写实现节流防抖[https://gitee.com/r...

  • 如何理解debounce和throttle?

    前端工程师们都听过看起来很高级的词,节流和防抖,其实节流就是debounce,防抖就是throttle,其实这个也...

  • 防抖和节流?区别以及实现

    防抖和节流的作用都是防止函数多次调用。区别在于,假设一个用户一直触发这个函数,且每次触发函数的间隔小于wait,防...

  • JS性能优化之——节流和防抖

    闭包 由于节流和防抖函数的实现都用到了闭包,所以在了解节流和防抖之前我先简单介绍下什么是闭包。 由于js代码在一个...

  • 防抖和节流

    防抖和节流 为什么需要防抖和节流 在前端开发的过程中,我们经常会需要绑定一些持续触发的事件,如 resize、sc...

  • JavaScript中的节流与防抖函数记不住?我的答案保你终身难

    前端性能优化-防抖和节流 前言 防抖和节流严格算起来应该属于性能优化的知识,但实际上遇到的频率相当高,处理不当或者...

  • js防抖和节流

    一个垃圾前端为了面试准备的系列篇一:防抖和节流防抖和节流其主要的都是为了限制某些事件频繁执行,从而避免频繁执行导致...

  • 谈谈js中的节流和防抖函数

    关于节流和防抖,这篇文章说的很好了,深入lodash源码分析防抖和节流深入篇 | Lodash 防抖和节流是怎么实...

  • 2019-06-24 函数节流和函数防抖

    最近看了很多blog里介绍的函数节流和函数防抖,所以整理出一套较为简单,易理解的函数节流和函数防抖 函数节流:首先...

网友评论

    本文标题:说说前端的防抖和节流以及最简单的实现

    本文链接:https://www.haomeiwen.com/subject/kvjiqctx.html