javascript的防抖与节流
2024-09-07 11:56:11
一、节流
一段时间内只能触发一次,如果这段时间内触发多次事件,只有第一次生效会触发回调函数,一段时间过后才能再次触发(一定时间内只执行第一次)
应用场景
1、鼠标连续不断地触发某事件(如点击),只在单位时间内只触发一次;
2、懒加载时要监听计算滚动条的位置,但不必每次滑动都触发,可以降低计算的频率,而不必去浪费 CPU 资源;
function debounce(fn,delay){
let timer = null;
return function(){
if(timer){
clearTimeout(timer)
}
timer = setTimeout(fn,delay)
}
}
二、防抖
在事件被触发时,延迟n秒后再触发回调函数,如果n秒内又触发了事件,则会重新开始计算时间(一定时间内最后一次生效)
应用场景
用户在输入框中连续输入一串字符时,可以通过防抖策略,只在输入完后,才执行查询的请求,这样可以有效减
少请求次数,节约请求资源
function debounce(fn,delay){
let timer = null;
return function(){
if(timer){
clearTimeout(timer)
}
timer = setTimeout(fn,delay)
}
}
最新文章
- TOJ3136
- mysql设置定时任务
- [原创] Web UI自动化应用测试框架实践 - 概览
- 极客技术专题【007期】:jQuery初学者入门 - jQuery Event
- JAVA学习(二):JDK介绍及其结构、用途
- 【DevExpresss】3、LookUpEdit详解(转载)
- 完整版百度地图点击列表定位到对应位置并有交互动画效果demo
- C语言字符数组作业
- Linux中Eclipse下搭建Web开发环境
- 7.10 break.c 程序
- 牛客练习赛43 Tachibana Kanade Loves Game (简单容斥)
- shell编程学习笔记(三):Shell中局部变量的使用
- python 集合取最大最小值
- php常量的实现
- BZOJ3144 Hnoi2013 切糕 【网络流】*
- RK3288 增加双屏异显 eDP+LVDS
- NSInvocation 调用block clang代码转换c++
- <;数据挖掘导论>;读书笔记6关联分析的高级概念
- Python爬虫《爬取get请求的页面数据》
- ubuntu for windows10设置中文