当前位置:网站首页>lodash实现防抖和节流功能及原生实现
lodash实现防抖和节流功能及原生实现
2022-06-27 22:43:00 【学而时习之.】
这里以搜索功能为例
监听边输入边搜索:@input
敲回车搜索 @keyup.enter.native=""
点击按钮搜索 @click
搜索性能优化:主要利用防抖和节流
防抖和节流:主要目的是为了降低高频事件触发,减少dom操作或请求次数,提升性能
通常高频事件:onscroll,onresize,keyup/keydown,mousemove
防抖:在固定时间内,如果有事件触发,则会再延长固定时间,直到固定时间内没有触发事件再做处理 例如:电梯和屏保。
节流:指定一个固定时间,无论是事件触发与,只要到了固定时间,都会触发。
第三方函数工具库:lodash
安装: npm i lodash
引入:import _ from ‘lodash’
//防抖
getList:_.debounce(function() {
this.getUserList()
},2000),
//节流
getList:_.throttle(function() {
this.getUserList()
},2000),
js 原生(可写全局方法):
export function _debounce(fn, delay) {
//防抖
var delay = delay || 200;
var timer;
return function() {
var th = this;
var args = arguments;
if (timer) {
clearTimeout(timer);
}
timer = setTimeout(function() {
timer = null;
fn.apply(th, args);
}, delay);
};
}
// 节流
export function _throttle(fn, interval) {
var last;
var timer;
var interval = interval || 200;
return function() {
var th = this;
var args = arguments;
var now = +new Date();
if (last && now - last < interval) {
clearTimeout(timer);
timer = setTimeout(function() {
last = now;
fn.apply(th, args);
}, interval);
} else {
last = now;
fn.apply(th, args);
}
}
}边栏推荐
- Deep parsing of kubernetes controller runtime
- Overview and deployment of GFS distributed file system
- CRTMP视频直播服务器部署及测试
- MATLB|改进的前推回代法求解低压配电网潮流
- 796 div.2 C. managing history thinking
- Quickly master grep commands and regular expressions
- #795 Div.2 E. Number of Groups set *
- Alchemy (4): mental model of programmers
- 云厂商为什么都在冲这个KPI?
- Internship: business process introduction
猜你喜欢

剑指 Offer 61. 扑克牌中的顺子

LabVIEW continuous sampling and limited sampling mode

Promise是什么

剑指 Offer 65. 不用加减乘除做加法

LabVIEW连续采样与有限采样模式

现代编程语言:Rust (铁锈,一文掌握钢铁是怎样生锈的)

现代编程语言:zig

Overview and construction of redis master-slave replication, sentinel mode and cluster
![[读书摘要] 学校的英文阅读教学错在哪里?--经验主义和认知科学的PK](/img/7b/8b3619d7726fdaa58da46b0c8451a4.png)
[读书摘要] 学校的英文阅读教学错在哪里?--经验主义和认知科学的PK

Arduino uno realizes simple touch switch through direct detection of capacitance
随机推荐
给女朋友看的消息中间件
Squid proxy server (Web cache layer for cache acceleration)
Ceiling scheme 1
[读书摘要] 学校的英文阅读教学错在哪里?--经验主义和认知科学的PK
MATLB|基于复杂网络的配电系统微电网优化配置
MATLB|改进的前推回代法求解低压配电网潮流
Is it reliable to invest in exchange traded ETF funds? Is it safe to invest in exchange traded ETF funds
代码整洁之道--函数
Alchemy (1): identify prototype, demo and MVP in project development
HCIP/HCIE Routing&Switching / Datacom备考宝典系列(十九)PKI知识点全面总结(公钥基础架构)
GFS 分布式文件系统概述与部署
快速掌握grep命令及正则表达式
Code neatness -- format
Introduction to memory model of JVM
炼金术(2): 为什么要用issue管理软件
The limits of Technology (11): interesting programming
Oracle数据库的启停
Matlb| improved forward push back method for solving power flow of low voltage distribution network
LabVIEW continuous sampling and limited sampling mode
Alchemy (2): why use issue management software