当前位置: 首页 > news >正文

防抖和节流的理解

概要

  1. 防抖或节流:限制函数的执行次数。
  2. 防抖:通过setTimeout的方式,在一段时间内间隔内,将多次触发变成一次触发。
  3. 节流:减少一段时间的触发频率。

防抖

/**
 * 防抖
 * @param {Function} fn 回调函数
 * @param {number} dealy 等待时间
 * */
function debounce(fn, dealy) {
	let timer = null;
	return function() {
		if(timer){
			clearTimeout(timer)
		}
		timer=setTimeout(fn,dealy)
	}
}

使用方法:举个栗子

var _return = debounce(()=>{
	console.log('输入返回')
},500)
$('#input').on('input',()=>{
	_return();
})

节流

/**
 * 节流
 * @param {Function} fn 回调函数
 * @param {number} dealy 等待时间
 * */
export function throttle(fn, dealy) {
	let flag = true;
	return function() {
		if(!flag){
			return false;
		}
		flag=false;
		setTimeout(()=>{
			fn();
			flag=true;
		},dealy)
	}
}

使用方法:举个栗子

var _return = throttle(()=>{
	console.log('输入返回')
},500)
$('#input').on('input',()=>{
	_return();
})

相关文章:

  • switch中的break和return的区别
  • 测试Js权限
  • uniapp开发:uni.request基于async+await的二次封装,兼容vue2、vue3、及多端
  • 自定义Property属性动画
  • 阿里iconfont图标ttf转换为base64【非常详细】
  • 浏览器输入url以后所经历的过程
  • linux中DNS原理详解
  • 原型链的简单理解【关系到结论】
  • Qt中实现渐变动画效果
  • DOM树的理解【面试常问】
  • h5适配的解决方案【1】
  • class命名及前端部分规范【解决命名的疑问】
  • 小程序中使用彩色图标(阿里iconfont)
  • 前端新手引导的简单实现【Intro.js插件】
  • javascript闭包的理解及应用场景
  • @angular/forms 源码解析之双向绑定
  • [deviceone开发]-do_Webview的基本示例
  • Android框架之Volley
  • Angular js 常用指令ng-if、ng-class、ng-option、ng-value、ng-click是如何使用的?
  • CSS魔法堂:Absolute Positioning就这个样
  • Docker入门(二) - Dockerfile
  • Javascript 原型链
  • Redux系列x:源码分析
  • Vue 重置组件到初始状态
  • WordPress 获取当前文章下的所有附件/获取指定ID文章的附件(图片、文件、视频)...
  • 构造函数(constructor)与原型链(prototype)关系
  • 聚类分析——Kmeans
  • 前嗅ForeSpider采集配置界面介绍
  • 算法系列——算法入门之递归分而治之思想的实现
  • - 语言经验 - 《c++的高性能内存管理库tcmalloc和jemalloc》
  • 阿里云服务器如何修改远程端口?
  • 宾利慕尚创始人典藏版国内首秀,2025年前实现全系车型电动化 | 2019上海车展 ...
  • #stm32整理(一)flash读写
  • (16)Reactor的测试——响应式Spring的道法术器
  • (c语言版)滑动窗口 给定一个字符串,只包含字母和数字,按要求找出字符串中的最长(连续)子串的长度
  • (LeetCode C++)盛最多水的容器
  • (附源码)spring boot公选课在线选课系统 毕业设计 142011
  • (十二)devops持续集成开发——jenkins的全局工具配置之sonar qube环境安装及配置
  • (四)Linux Shell编程——输入输出重定向
  • (终章)[图像识别]13.OpenCV案例 自定义训练集分类器物体检测
  • (转)C语言家族扩展收藏 (转)C语言家族扩展
  • (转)母版页和相对路径
  • .net Application的目录
  • .NET CF命令行调试器MDbg入门(三) 进程控制
  • .net与java建立WebService再互相调用
  • .pyc文件还原.py文件_Python什么情况下会生成pyc文件?
  • /bin/rm: 参数列表过长"的解决办法
  • [ 手记 ] 关于tomcat开机启动设置问题
  • [android] 天气app布局练习
  • [BZOJ 3680]吊打XXX(模拟退火)
  • [dart学习]第四篇:函数
  • [dfs搜索寻找矩阵中最长递减序列]魔法森林的秘密路径
  • [Django开源学习 1]django-vue-admin
  • [GDOUCTF 2023]<ez_ze> SSTI 过滤数字 大括号{等
  • [HITCON 2017]SSRFme perl语言的 GET open file 造成rce