防抖节流
发布日期:2021-11-21 16:35:33
浏览次数:13
分类:技术文章
本文共 824 字,大约阅读时间需要 2 分钟。
1. 防抖函数
概念:频繁触发,但只在规定时间内没有触发查询条件才会执行一次代码。
实现原理:如果在delay时间内频繁操作,则每次都会清除一个定时器并重新创建一个,直到最后一次操作,等待delay时间后执行fn函数。 应用场景:频繁操作点赞和取消点赞;输入框搜索自动补全事件;scroll滚动触发事件,判断是否到页面底部自动加载更多;表单校验;按钮提交;浏览器窗口缩放,resize事件; 优点:有效减轻服务器的压力; 代码实现:const debounce = (fn, delay) => { let timer = null return (...args) => { clearTimeout(timer) timer = setTimeout(() => { fn.apply(this, args) }, delay) }}
2. 节流函数
概念:频繁触发,但在指定时间内只执行一次代码
实现原理:如果频繁操作,每次都会判断当前是否有函数在执行,如果没有,则会在delay时间后执行函数。 应用场景:拖拽mousemove事件;输入框搜索自动补齐;scroll滚动触发事件,判断是否到页面底部自动加载更多,给scroll加debounce,只有用户停止滚动,才会判断是否到达页面底部;如果是throttle,只要页面滚动就会间隔一段时间判断一次; 优点:有效减轻服务器的压力; 代码实现:const throttle = (fn, delay) => { let loading = false return (...args) => { if (loading) return loading = true setTimeout(() => { fn.apply(this, args) loading = false }, delay) }}
转载地址:https://blog.csdn.net/yyychocolate/article/details/108076411 如侵犯您的版权,请留言回复原文章的地址,我们会给您删除此文章,给您带来不便请您谅解!
发表评论
最新留言
表示我来过!
[***.240.166.169]2024年04月02日 22时09分19秒
关于作者
喝酒易醉,品茶养心,人生如梦,品茶悟道,何以解忧?唯有杜康!
-- 愿君每日到此一游!
推荐文章
【C++】算法集锦(12):高楼扔鸡蛋
2019-04-27
【图解】拥塞控制
2019-04-27
线程上下文切换
2019-04-27
什么是服务熔断?
2019-04-27
服务器压力过大?CPU打满?我来帮你快速检查Linux服务器性能
2019-04-27
C++面经总结之《Effective C++》(一)
2019-04-27
C++面经总结之《Effective C++》(二)
2019-04-27
这是什么“虎狼之词”啊!!!程序员的健康问题,看一线老中医怎么说!!!
2019-04-27
打开我的收藏夹 -- Python数据分析杂谈
2019-04-27
上手Pandas,带你玩转数据(1)-- 实例详解pandas数据结构
2019-04-27
上手Pandas,带你玩转数据(2)-- 使用pandas从多种文件中读取数据
2019-04-27
上手Pandas,带你玩转数据(3)-- pandas数据存入文件
2019-04-27
爬虫遇上不让右击、不让F12的网站,该怎么办?
2019-04-27
上手Pandas,带你玩转数据(4)-- 数据清洗
2019-04-27
上手Pandas,带你玩转数据(5)-- 数据转换与数据定位
2019-04-27
上手Pandas,带你玩转数据(6)-- 摆脱对pandas可视化丑图的刻板印象吧
2019-04-27
linux shell — 6.初识 EXT2 文件系统
2019-04-27