前端优化 —— 函数的节流和防抖

聊一聊前端 JS 的防抖和节流 文章目录(PS:觉得不错请点赞收藏支持一下)前言一、为什么需要使用防抖和节流二、`debounce` 防抖2.1 概念2.2 实现三、`throttle` 节流3.1 概念3.2 实现总结 前言 ​ 如上图这是今天老师布置的一个任务,当初次看到任务要求时,对所述的防抖和节流是非常的陌生,第一件事就是去查阅资料了,逛了各种的教程平台,博客平台,结合了一下总结出了本篇文章,总结不易,希望可以得到大家的鼓励,当然有哪里不对的地方还请指出,感谢???? 一、为什么需要使用防抖和节流 实践最容易看清一切,直接给 阅读详情

在这里插入图片描述


阅读原文


前言

在前端开发当中我们经常会绑定一些事件触发的某些程序执行,有时这些事件会连续触发,如浏览器窗口 scroll、resize,输入框的 keyup、input,以及 click 事件在连续点击时连续发送请求等等,这些情况有些会严重影响前端性能,有些会增加服务器压力,使用户体验大打折扣,而函数节流和防抖就是为了解决这样的问题。


函数节流 throtter

函数节流:当持续发生事件时,保证在一个固定的时间间隔只执行一次真正的事件处理程序,通俗的说就像 “节流” 的名字一样,打开水龙头时要秉承勤俭节约的原则,把阀门关小,最好是达到在固定间隔内水一滴一滴的往下流。

1、节流函数的时序图

在这里插入图片描述

从图中可以看出,连续触发事件时,真正执行事件处理程序的间隔是固定的,多次触发,也只会在某一个时间间隔内触发一次,由于事件处理函数内部执行逻辑各不相同,我们就封装一版可通用的节流函数。

2、节流函数的封装

// 文件:throtter.js
// 节流函数
const throtter = (func, delay = 60) => {
   
   
    // 锁的标识
    let lock = false;

    // 返回一个事件处理函数
    return (...args) => {
   
   
        // 如果 lock 为 true 则跳出
        if (lock) return;

        // 执行函数并更改锁的状态
        func(...args);
        lock = true;

        // 添加定时器,在到达时间间隔时重置锁
前端尚品汇(四)———函数防抖及节流 函数防抖及节流 阅读详情

相关推荐

【5G演进】4G到5G演进之网络架构与协议栈

4G到5G演进之网络架构与协议栈

Learning makes me happy (0^◇^0) 5530

Win 11 Fastboot驱动的详细安装教程

Fastboot驱动的详细安装教程

水w的博客 1万+

李沐之数值稳定性+模型初始化和激活函数

层记为t,这里的y不是预测,还包括了损失函数,y是优化函数,不是预测的结果y。第t层是输出。所有的h都是一些向量,向量关于向量的导数是一个矩阵,所以用了很多次的矩阵乘法,出问题就在这里。

m0_51133942的博客 1527

ubuntu20.04开机黑屏卡在/dev/sda1:clean,***files,***blocks,解决心得记录

这个问题如果你百度,会发现目前有很多种解决方法。 有更新显卡驱动的,有卸载上一次安装软件的,还有各种奇奇怪怪的故障原因。 如果你是属于上述情况,那么按照百度和论坛的各种指引操作一般都能解决。 但我这里主要说一种特殊情况,就是我什么也没有操作,我什么也没干。就是正常使用系统关了机突然就报错了。 这也是自己亲自遇到的问题,做个小记录方便以后自己回顾。 上一次出现这种情况我重装系统了,这次用了两个月又出现了,重装成本太高,我接受不了,于是找到解决办法。 首先找个终端进入,进入终端的方法很多,用安装u盘

qq_41517017的博客 2万+

补洞与fairing算法

对网格进行补洞,remesh, 平滑,fairing, 最小二乘优化平滑

闪电彬彬的博客 1047

手把手教你学 Simulink (1.3)--Simulink 的模块库及其模块介绍

Simulink 提供了丰富的模块库,涵盖了从基本的信号生成和处理到复杂的数学运算和系统建模的各种功能。通过熟悉这些模块库及其模块,你可以更高效地构建和仿真动态系统。

MHD0815的博客 5150

MATLAB 基于深度学习的步态识别算法仿真

步态识别是一种通过分析人体行走方式来识别身份的技术。基于深度学习的步态识别算法利用卷积神经网络 (CNN) 提取步态特征,并通过分类器进行身份识别。基于深度学习的步态识别算法是实现身份识别的重要手段,具有广泛的应用前景。MATLAB 提供了丰富的工具和函数,可以方便地进行算法仿真和性能评估。

走向CTO的路上... 518

数据分享|2023年OSM道路数据(全国,分省,分市)

首先这个工作非常有必要的,因为我们正常使用的道路的分类都是基于包括城市快速路、城市主干路、城市次干路这个体系的,大家对于这个分类体系应该更熟悉,但是OSM地图的道路分类又不是完全按这个来的,所以非常有必要重新分类;搞清楚道路类型是我们使用道路数据做很多工作的基础,比如我们在使用道路数据的时候,经常需要预估道路的行车速度,而这个速度一般就是根据道路类型来的,比如高架路的车速肯定就比城市支路快很多!下载分为两种情况,第一种是下载小区域的数据,比如下载一个街区的数据,第二种为下载整个中国范围的。

JData_Engineer的博客 4306

RU DOS版、EFI版32bit/64bit BIOS常用工具

DOS版、EFI版的RU工具,可用来查看IO、MEM、PCI、SMBIOS等资源。亲测在EFI SHELL下可用。

jdk-8u144-linux-x64.tar.gz.

该资源为搭建Linux系统Java环境用,资源的后缀为tar.gz格式的压缩包

lwip-2.0.3

lwip是瑞典计算机科学院(SICS)的Adam Dunkels 开发的一个小型开源的TCP/IP协议栈。实现的重点是在保持TCP协议主要功能的基础上减少对RAM 的占用。

android 蓝牙通讯demo

android 下蓝牙通讯demo,实现了发现蓝牙,使能蓝牙,通过蓝牙发送消息。

上一篇: Hexo 中 Markdown 特殊字符的处理方法
下一篇: 简单封装一个靠谱的检测数据类型模块
Panda Shen
博客等级 码龄10年 18粉丝 50原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值