节流与防抖

节流与防抖,这两个词经常会出现在前端的应用中,很多时候我们只是该用的时候使用它,往往却不喜欢花时间理解亦或者是看到的逻辑较复杂,一时间无法记住重要的导致全部都被大脑清除掉了,所以我留下这个既不需要大费周章去理解,而简单看看就能很容易理解的记录

什么是节流与防抖?

节流:立即触发一次事件,在事件触发后的一段时间内再次触发事件不执行并且会将时间重置

        let box = document.getElementById('box');  // 获取需要进行操作的dom元素
        // 将dom元素设置事件监听
        box.addEventListener('click', function() {
        	// 将行为与节流函数绑定
            debounce(() => {console.log('111')}, 500);
        })
        
        // 创建节流操作
        let timer = null;  // 1.设置延时标签
        function debounce(fn, delay) {
            // 2.进入函数后,当定时器存在时将定时器清空,否则生成定时器
            if (timer) {
                clearInterval(timer);
            }
            // 3.重新生成延时器
            timer = setTimeout(fn, delay);
        }

这里的话我们只需要理解节流操作的第2步操作

当第一次进入函数后,延时器timer为空,那么我们会生成延时器
如果后续未在等待时间(delay)范围内再次触发节流操作,那么fn会被执行,控制台打印出111
如果后续在等待时间(delay)范围内再次触发节流操作,那么延时器会被清空,并且重新生成

防抖:在事件持续触发的情况下一段时间只会触发一次的事件

        let box = document.getElementById('box');  // 获取需要进行操作的dom元素
        // 将dom元素设置事件监听
        box.addEventListener('click', function() {
        	// 将行为进行防抖函数绑定
            throttle(() => {console.log('111')}, 1000);
        })

		// 创建防抖操作
		let valid = true;  // 1.创建验证
        function throttle(fn, delay) {
        	// 2.如果验证未通过则弹出函数,不往下执行
            if (!valid) {
                return;
            }
            // 3.将验证设置为失效状态
            valid = false;
            // 4.设置延时器
            setTimeout(() => { valid = true; fn(); }, delay)
        }

这里的话我们只需要理解第2步

当第一次进入函数时 验证通过了 => 验证状态变为失效 => 执行延时器,
如果后续未在等待时间(delay)范围内再次触发防抖操作,那么fn会被执行,控制台打印出111,并且验证状态会变为有效
如果后续在等待时间(delay)范围内再次触发防抖操作,在验证为失效状态下触发函数会被弹出,反复执行第2步,直至延时器执行完毕才可再次进入第3步

此文章仅为个人简浅理解,不做深入研究,欢迎指正

内容概要:本文围绕基于改进多目标粒子群优化算法(小生境粒子群算法)的配电网有功-无功协调优化问题展开研究,旨在通过智能优化算法有效降低网络损耗、提升电压质量并增强配电系统的运行效率。研究系统地介绍了小生境粒子群算法的改进策略,构建了包含功率平衡、电压安全、设备容量等多重约束的多目标优化模型,并采用IEEE标准测试系统进行仿真验证,充分证明了该方法在处理多目标、多约束优化问题上的优越性能。全文涵盖从数学建模、算法设计、约束处理到多目标折衷解选择的完整流程,并配套提供了完整的Matlab代码实现,便于读者复现结果与进行二次开发。; 适合人群:具备一定电力系统基础知识和Matlab编程能力,从事电力系统优化、智能算法研究或相关领域工作的研究生、科研人员及工程技术人员。; 使用场景及目标:①解决配电网中有功与无功功率的协同优化问题,实现节能降耗与电压稳定;②学习并掌握多目标粒子群算法及其小生境改进策略在电力系统中的具体应用与实现细节;③通过Matlab代码进行仿真,加深对智能优化算法在工程实践中应用的理解,提升科研与工程实践能力。; 阅读建议:此资源以理论分析与代码实现紧密结合的方式呈现,建议读者在深入理解算法原理和模型构建的基础上,结合所提供的Matlab代码进行仿真实验,重点关注参数设置、收敛性分析与结果可视化等关键环节,从而实现从理论认知到实践验证的完整闭环。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值