JavaScript防抖与节流的示例分析
发表于:2025-01-22 作者:千家信息网编辑
千家信息网最后更新 2025年01月22日,这篇文章给大家分享的是有关JavaScript防抖与节流的示例分析的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。防抖debounce定义:对于短时间内连续触发的事件,比如滚
千家信息网最后更新 2025年01月22日JavaScript防抖与节流的示例分析
这篇文章给大家分享的是有关JavaScript防抖与节流的示例分析的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。
防抖debounce
定义:对于短时间内连续触发的事件,比如滚动事件,防抖就是让某个时间期限内,事件处理函数只执行一次。
关于防抖,拿手指按压弹簧举例,用手指按压弹簧,一直按住,弹簧将不会弹起直到松开手指。
举例resize:
function debounce(fn, wait){ var timer = null; return ()=>{ if(timer !== null){ clearTimeout(timer); } timer = setTimeout(fn, wait); }}function handle(){ console.log(Math.random());}window.addEventListener("resize",debounce(handle, 1000));
上面是非立即执行版
立即执行版
function debounce(fn, wait){ let timeid, flag = true; return () => { clearTimeout(timeid); if(flag){ fn(); flag = false; }else{ timeid = setTimeout(()=>{ flag = true; }, wait); } }}
拖动浏览器窗口,触发resize,此时并不触发handle函数,定时器计时,在计时时间内再次触发resize的话,则会从新计时,这样做的好处就是拖动浏览器窗口触发resize,并不会频繁执行handle函数,只让其在需要执行的时候去运行,有效的去除了冗余。
常见写法:
const debounce = (func, delay = 200) => { let timeout = null return function () { clearTimeout(timeout) timeout = setTimeout(() => { func.apply(this, arguments) }, delay) }}
节流throttle
定义:让事件在一定时间内只执行一次。
本意是像水龙头的水滴一样,规定时间内只执行一次,减少频繁反复执行。
如搜索框input事件。
通过时间戳计算:
function throttle(fn,wait){ let startTime = 0; return function(){ let endTime = Date.now(); if(endTime-startTime>wait){ fn(); startTime = endTime; } }}
通过定时器:
function throttle(fn,wait){ let timeid = null; return function(){ if(!timeid){ timeid = setTimeout(function(){ fn(); timeid = null; },wait) } }}
感谢各位的阅读!关于"JavaScript防抖与节流的示例分析"这篇文章就分享到这里了,希望以上内容可以对大家有一定的帮助,让大家可以学到更多知识,如果觉得文章不错,可以把它分享出去让更多的人看到吧!
时间
事件
函数
弹簧
手指
示例
分析
频繁
内容
定时器
就是
更多
浏览器
篇文章
浏览
不错
实用
有效
再次
冗余
数据库的安全要保护哪些东西
数据库安全各自的含义是什么
生产安全数据库录入
数据库的安全性及管理
数据库安全策略包含哪些
海淀数据库安全审计系统
建立农村房屋安全信息数据库
易用的数据库客户端支持安全管理
连接数据库失败ssl安全错误
数据库的锁怎样保障安全
软件开发的成本怎么入账
2021国际网络安全比赛
云南计算机网络技术
数据库原理期末考试怎么过
哔哩漫游服务器不可用
qq视频通话服务器保存
最新的网络技术和应用有哪些
浪潮服务器 管理 界面
如何防范网络安全
济宁市人民银行网络安全宣传
网络安全客户端软件购买情况
推荐的软件开发公司
试图在数据库安全性方面
sql数据库实验六
枣庄平台软件开发公司
网络安全故事脚本
数据库与数据项
星环数据库怎么按天建分区
数据中心网络技术论坛
四叶草网络安全技能大赛
网络安全教育 保密上课
服务器 ssr 安全加固
开展门户网站网络安全应急演练
平谷区专业网络技术服务平台
数据库网站的制作教程
数据库的常用管理操作
网络安全边界部署12306
大专网络技术专业难找工作吗
批量上传数据弹出重复数据库
科学探索网络安全