防抖与节流

ajax - 终结篇jsonp,防抖节流 Python微信订餐小程序课程视频 https://blog.youkuaiyun.com/m0_56069948/article/details/122285951 Python实战量化交易理财系统 https://blog.youkuaiyun.com/m0_56069948/article/details/122285941 今天是我们最后一天ajax的学习,这次学完总可以去vue了吧,我不信还有什么拦路石,先不说其他的先看看今天的内容。 首先是同源策略,什么叫做同源? 如果两个页面的协议、域名、端口都相同的话,我们将 阅读详情

1.防抖Debounce

  • 指在某个事件频繁触发时,延迟一定时间后再执行回调函数。如果在延迟时间内又触发了同样的事件,那么会重新计时。
  • 多次触发,只执行最后一次

1.1应用场景

  • 搜索框实时搜索:只需用户最后一次输入完,再发送请求
  • 手机号、邮箱输入验证
  • 窗口大小调整:只需窗口调整完成后,计算窗口大小,防止重复渲染

1.2 实现防抖函数

  • 思路:延迟函数执行并重新计时以确保在一段时间内只执行一次函数
<div><input type="text" id="debounce"></div>

const debounceDom = document.getElementById('debounce')
// 使用防抖函数,确保在连续触发 keyup 事件时只触发一次 ajax 函数
debounceDom.addEventListener('keyup', debounce(ajax, 500))

// 模拟一个 ajax 请求
function ajax() {
	console.log('这是一个请求');
}

// 实现防抖的函数
function debounce(fn, time) {
    let timer = null
    return function () {
    	if (timer) { //说明上次定时器还没有执行完 清除上次定时器
    		clearTimeout(timer)
    	}
    	timer = setTimeout (() => {
    		// 箭头函数没有this、arguments,所以apply使用不用提前存,用的就是外部的
    		fn.apply(this, arguments) 
    	}, time)
	}
}

2.节流Throttle

  • 每隔一段时间,只执行一次函数

  • 侧重点在于隔段时间一次,隔段时间一次

2.1 应用场景

  • 页面滚动加载,加载更多或滚到底部监听
  • 高频点击提交,表单重复提交
  • 谷歌搜索框,搜索联想功能

2.2 实现节流函数

  • 时间戳实现:
function throttle (fn, delay) {
	let prevTime = Date.now();
	return function(){
		if(Date.now() - prevTime > delay){
			fn.apply(this, arguments)
			prevTime = Date.now()
		}
	}
}
  • 定时器实现:
function throttle (fn, delay) {
	let timer = null
	return function() {
		if(timer) return
		timer = setTimeout (() => {
			fn,apply(this, arguments)
			timer = null
		}, delay)
	}
}
武汉理工大学数据结构综合实验——连连看游戏综合实践 文章目录实验目的主要仪器设备及耗材一、实验要求二、分析与设计(非线性结构)1.数据结构的设计2.核心算法设计一条直线消子两条直线消子三条直线消子初始化游戏地图搜寻路径提示和重排3.测试用例设计4.测试效果总结 实验目的 (1)线性结构实验目的 调研连连看游戏,了解连连看游戏的功能和规则等 掌握集成开发工具VS2019的使用和C++的基础编程 了解MFC框架 了解线性结构,掌握数组的遍历、消子和胜负判断等算法 了解企业软件开发过程,应用迭代开发思路进行项目开发,养成良好的编程习惯和培养软件工程化思维 . 阅读详情

相关推荐

UE4游戏开发:GameInstance与GameMode的实战应用与避坑指南

本文深入解析了UE4中GameInstance与GameMode的核心差异与实战应用。GameInstance作为贯穿游戏进程的全局单例,负责跨关卡数据持久化与系统管理;而GameMode则定义特定关卡内的游戏规则与逻辑,随关卡加载销毁。文章通过数据存储、动态模式切换及网络游戏等场景,提供了清晰的应用指南与常见避坑方案,帮助开发者构建更健壮的UE4游戏架构。

kubernetes8ctl的博客 230

【Ajax】防抖和节流

举例:高铁卫生间是否被占用,由红绿灯控制,红灯表示被占用,绿灯表示可使用。用户在输入框中连续输入一串字符时,可以通过防抖策略,只在输入完后,才执行查询的请求,这样可以有效减少请求次数,节约请求资源;防抖策略(debounce)是当事件被触发后,延迟 n 秒后再执行回调,如果在这 n 秒内事件又被触发,则重新计时。懒加载时要监听计算滚动条的位置,但不必每次滑动都触发,可以降低计算的频率,而不必去浪费 CPU 资源。如果事件被频繁触发,节流能够减少事件触发的频率,因此,节流是有选择性地执行一部分事件!

早睡早起长头发的博客 1477

如何利用Arcgis进行地统计学分析(三):空间插值方法选择与优化

本文深入探讨了在Arcgis中进行地统计学分析时,如何根据探索性数据分析(EDA)结果科学选择与优化空间插值方法。文章对比了IDW、RBF、克里金等主流方法的适用场景与核心参数,并通过实战案例详解了从数据诊断到模型调优的完整流程,强调结合半变异函数与趋势分析进行“对症下药”,以提升插值结果的精度与可靠性。

weixin_29281915的博客 121

51-(JQuery的Ajax)防抖和节流

51-(JQuery的Ajax)防抖和节流

我们的目标是星辰大海! 424

实例讲解CANoe报文解析使用方法

在日常工作中,经常需要分析车辆产生故障的原因,在电动汽车中,分布式控制器及线束在其中某一个地方出现问题,就有可能造成车辆故障,但是由于电气零件无法直观的观察到哪个部位发生了故障,所以要借助工具测量电气变量或者采集报文信息通过分析,解析出故障原因,从而为车辆的开发,测试,维修提供支持。其中汽车行业最通用的通讯方式就是CAN通讯,本文针对使用CANoe对CAN报文离线分析的使用方法做详细介绍。

qq_43011586的博客 1万+

【现代电路理论】【2】考尔法设计无源单口网络

夏 弥:其实你在冰面上看到鱼浮上来 明年冬天如果你还在那里,那鱼还是会上来换气 那时候你就可以带一把冰镐 把冰面砸开把鱼捞上来熬汤

痛苦的时候装出幸福相,这不是那么难做到的事 2887

ajax-防抖&节流

/ 缓存对象节流策略throttle),顾名思义,可以减少一段时间内事件的触发频率。防抖:如果事件被频繁触发,防抖能保证只有最有一次触发生效!前面 N 多次的触发都会被忽略!节流:如果事件被频繁触发,节流能够减少事件触发的频率,因此,节流是有选择性地执行一部分事件!

shape_one的博客 528

Xilinx_JESD204B

Xilinx_JESD204B_AXI配置 说明:通过FPGA的高速数据接口JESD204B对AD9625进行高速采集。 环境:Vivado2018.3。 IP核:JESD204(7.2)。 参考手册:pg066_jesd204 v7.2。 资料以及IP_licence:JESD204B AXI协议资料:AXI 文章目录JESD204B概述JESD204B接口术语JESD204B 层JESD204B_AXI介绍AXI介绍JESD204B__AXI_Lite接口AXI-Lite接口介绍AXI-Lite接口信号

Crazzy_M的博客 1万+

ajax 网络请求防抖处理

ajax请求防抖函数处理,在输入框里面改变值的时候,可以间隔2秒在发起网络请求,可以减轻服务端的压力 <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <meta http-equiv="X-UA-Compatible" content="IE=edge"> <meta name="viewport" content="width=dev.

前端开发工程师博客 574

(八)DDR_PHY架构及功能——(PUB组成、初始化及Training流程、Clock关系)

文章目录一、DDR_PHY结构组成1.1、DDR Memory子系统1.2、DDR_PHY架构组成1.3、PUB模块功能实现流程1.3.1、DDR系统初始化流程1.3.2、PLL初始化流程 一、DDR_PHY结构组成 1.1、DDR Memory子系统   Memory子系统主要由DDR Controller和DDR_PHY(含DDR_IO)两个部分组成。DDR Controller主要承担其它子系统(如CPU)与Memory子系统进行数据交互时的传输效率及调度,DDR_PHY主要负责数据交互过程中的传输速

Mr.翟的博客 1万+

激光除草技术原理与应用全解析

激光除草技术通过光热、光化学等效应精准破坏杂草组织,核心参数包括功率(20-6000W)、波长(400nm-10.6μm)和脉冲宽度。主要应用于大田作物(如玉米、棉花)、经济作物(烟草、果树)及城市绿化,具有环保(无化学污染)、高效(识别率≥95%)和非接触等优势,但存在设备成本高(20-50万元)、技术门槛高等局限。当前技术融合AI识别、多光谱协同等创新,国产设备如华工智耘已实现95.3%识别精度。虽短期投入较高,但长期可降低30%除草成本,并带来环境效益(每亩减排1.2吨CO₂)

start_up_go的博客 557

防抖、节流的介绍

针一类类快速连续触发和不可控的高频触发问题,可以用节流和防抖。如通过滚动条的滚动来发起请求、通过输入文字来发起请求这一类的行为,下面用两个例子具体的给大家展示。

Dpl0216的博客 2万+

华为OD机考双机位C卷 - 构成正方形的数量 (Java & Python& JS & C/C++ & GO )

华为OD机考双机位C卷 - 成正方形的数量 (OD上机考试双机位C卷)。提供在线OJ刷题。Java、C++、Python、GO语言、C语言、JavaScript题解,并提供完整思路讲解。

算法大师! 5939

什么是防抖与节流

防抖是一种编程技术,用于限制函数在短时间内被频繁调用。当一个函数在短时间内被多次调用时,防抖会延迟执行该函数,直到最后一次调用后的一段时间内没有新的调用才会真正执行。如果在这段时间内又有新的调用,则重新计时。节流是一种编程技术,用于限制函数在一定时间内的调用次数。无论函数被调用多少次,在指定的时间间隔内只会执行一次。节流可以确保函数以固定的时间间隔执行。防抖和节流是前端开发中非常实用的技术,能够有效地减少函数的执行次数,提高性能,优化用户体验。

小赵的博客 3743

假人有限元模型

假人模型,车辆碰撞假人有限元模型,适合做乘员安全的研究者利用

怀旧版电脑GBC模拟器

再现原版GBC掌机的界面,电脑运行连游戏界面都一样大小,很怀旧,很真实,(英文版)强烈推荐,很小的文件,很难才找到的。

节流与防抖

1.我们先了解为什么要节流和防抖 我们给一个inpu输入框绑定一个oninput事件,此时我们输入“前端开发”四个字,我们 观察以下后台打印 <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <meta http-equiv="X-UA-Compatible" content="IE=edge"> <meta name="viewpo

weixin_45974259的博客 4308

ET2012新版免狗免安装绿色软件

ET2012新版免狗免安祖昂绿色软件。,新界面,新视觉,

防抖与节流详解

1. 概念 防抖 是指在一定时间内,在动作被连续频繁触发的情况下,动作只会被执行一次,也就是说当调用动作过n毫秒后,才会执行该动作,若在这n毫秒内又调用此动作则将重新计算执行时间,所以短时间内的连续动作永远只会触发一次,比如说用手指一直按住一个弹簧,它将不会弹起直到你松手为止。 节流 是指一定时间内执行的操作只执行一次,也就是说即预先设定一个执行周期,当调用动作的时刻大于等于执行周期则执行该动作,然后进入下一个新周期,一个比较形象的例子是如果将水龙头拧紧直到水是以水滴的形式流出,那你会发现每隔一段时间,

前端菜菜DayDayUp的博客 1万+

C# WinForm 基于DirectShow.dll编写的程序,可边预览边保存视频,音频和图片

基于微软的DirectShow.dll的二次开发1.自动识别连接的摄像头跟麦克风且可以对其进行选择(默认选中第一个)2.可录制wmv和avi两种格式的视频并且都带有音频,avi可以录制的分辨率和帧数进行选择,wmv默认进行了淸晰度优化如不喜欢可去除代码中有相关提示3.可在预览点开之后进行拍照,也可边录制视频边拍照4.添加了视频和音频的压缩功能(酌情使用)这次二次开发发现C#对DirectShow的相关信息太少,这次做完也不敢藏私共享出来,还望大家指正

防抖节流以及React Hook中的防抖节流

React Hook防抖前言一、pandas是什么?二、使用步骤1.引入库2.读入数据使用Umi Hooks防抖节流 前言 提示:这里可以添加本文要记录的大概内容: 例如:随着人工智能的不断发展,机器学习这门技术也越来越重要,很多人都开启了学习机器学习,本文就介绍了机器学习的基础内容。 提示:以下是本篇文章正文内容,下面案例可供参考 一、pandas是什么? 示例:pandas 是基于NumPy 的一种工具,该工具是为了解决数据分析任务而创建的。 二、使用步骤 1.引入库 代码如下(示例): impor

lovezhuer1的博客 5307

JS 防抖与节流

再比如监听输入框的输入,不应每次输入框内容变化都触发监听,应该是用户完成一段输入后再进行触发。事件会一直等到用户完成操作后一段时间在操作,如果一直操作,会一直不触发。比如说是一个按钮,点击就发送请求,如果一直点,那么请求就会一直发布出去。,保证在特定时间内至少执行一次,无论事件触发频率如何。节流就是减少流量,将频繁触发的事件减少,并每隔一段时间执行。这种结合方式综合了时间戳和定时器的优点,既能保证在开始时立即执行函数,又能在后续按照固定时间间隔执行。:事件触发之后,执行操作,然后设置一个定时器,在。

weixin_62971133的博客 1598

防抖与节流的原理

实现简单的防抖与节流的原理,有助于去理解其原理

m0_50441807的博客 2384

防抖与节流,rxjs防抖与节流

简介 最近在看Rxjs的文档,看到operator内debounceTime、throttleTime的两个方法,怪自己读书少,之前写防抖节流的时候一直想写个utils可能是因为理解不到位就一直没敢下手,今天既然发现了工具就记个笔记写下来以便日后少掉一点头发。 代码: 一、安装rxjs npm install -S rxjs npm install -S rxjs-compat 二、引用 import { Observable } from "rxjs/Observable"; import "rxjs/

LEGLO_的博客 1668

手写防抖节流

文章目录手写前端常用技巧-防抖节流防抖节流1. 首节流2. 尾节流3. 首尾节流总结 手写前端常用技巧-防抖节流 防抖:当持续触发事件时,一定时间内没有再触发事件,才会在一段时间之后触发事件处理函数。 节流:当持续触发事件时,保证一段delay之内,只调用一次函数 防抖 源代码 <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <meta http-eq

程序员三木的博客 2126

防抖与节流总结

防抖是一种常用的前端优化技术,它可以有效地减少在用户频繁触发某些事件(比如鼠标滚动、窗口缩放等)时产生的多次执行函数的问题。这样可以避免函数被频繁调用,从而提高页面的性能和用户体验。节流是一种优化性能的技术,主要用于减少某些事件的触发频率。在一些需要频繁触发事件的场景中,如果不加以限制,可能会造成系统负载过高,甚至导致卡顿或崩溃。节流技术就是通过限制事件触发的频率,来减少系统负载,提高性能。常见的节流方式包括定时器节流和时间戳节流。

mhc20201554114的博客 1679

防抖与节流的理解

防抖与节流防抖概念节流概念防抖与节流例子 防抖与节流的使用都是为了减轻服务器的压力。 防抖概念 当持续触发事件时,一定时间段内没有再触发事件,事件处理函数才会执行一次,如果设定的时间到来之前,又一次触发了事件,就重新开始延时。 简单理解就是连续多次点击一个链接,最终只执行最后一次的点击,之前的点击都取消了。 节流概念 让一个函数无法在很短的时间间隔内连续调用,当上一次执行完之后过了规定的时间间隔,才能进行下一次的函数调用。 简单理解就是点击一次链接后,再次点击就会无效,隔几秒后点击才会有效。 防抖与

qq_44849271的博客 1197
上一篇: 图片懒加载的实现方法
下一篇: this指向问题
ZoeLandia
博客等级 码龄6年 734粉丝 183原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值