我的编程空间,编程开发者的网络收藏夹
学习永远不晚

JavaScript防抖与节流的实现与注意事项

短信预约 -IT技能 免费直播动态提醒
省份

北京

  • 北京
  • 上海
  • 天津
  • 重庆
  • 河北
  • 山东
  • 辽宁
  • 黑龙江
  • 吉林
  • 甘肃
  • 青海
  • 河南
  • 江苏
  • 湖北
  • 湖南
  • 江西
  • 浙江
  • 广东
  • 云南
  • 福建
  • 海南
  • 山西
  • 四川
  • 陕西
  • 贵州
  • 安徽
  • 广西
  • 内蒙
  • 西藏
  • 新疆
  • 宁夏
  • 兵团
手机号立即预约

请填写图片验证码后获取短信验证码

看不清楚,换张图片

免费获取短信验证码

JavaScript防抖与节流的实现与注意事项

概念

防抖:点击N次提交按钮,只有最后一次会发出请求。减少无效请求的次数。

节流:每点击一次按钮,都会失效一段时间。降低触发的频率。

实现


function debounce(func, interval = 0) {
	let timer;
	return function () {
		if (timer) {
			clearTimeout(timer);
		}
		timer = setTimeout(() => {
			func()
		}, interval)
	}
}

function throttle(fn, interval=0, immediate=true) {
	let valid = true
	return function () {
		if (!valid) {
			return
		}
		valid = false
		if (immediate) {
			fn()
			setTimeout(() => {
				valid = true;
			}, interval)
		} else {
			setTimeout(() => {
				fn()
				valid = true;
			}, interval)
		}
	}
}

测试

function say() {
	console.log(1)
}
var a = debounce(say, 1000)
var b = throttle(say, 1000)
var c = throttle(say, 1000, false)

<button onclick="a()">测试防抖</button>
<button onclick="b()">测试节流一</button>
<button onclick="c()">测试节流二</button>

效果:

防抖。

节流,立即执行。

节流,延时执行。

注意事项

原理:闭包。每调用一次都会对应一个闭包。

不能够像下面这样写:

<button onclick="debounce(say, 1000)()">测试防抖</button>
<button onclick="throttle(say, 1000)()">测试节流一</button>
<button onclick="throttle(say, 1000, false)()">测试节流二</button>

不然:

总结

到此这篇关于JavaScript防抖与节流的实现与注意事项的文章就介绍到这了,更多相关JS防抖与节流内容请搜索编程网以前的文章或继续浏览下面的相关文章希望大家以后多多支持编程网!

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

JavaScript防抖与节流的实现与注意事项

下载Word文档到电脑,方便收藏和打印~

下载Word文档

猜你喜欢

JavaScript如何实现防抖与节流

这篇文章主要介绍了JavaScript如何实现防抖与节流,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。概念防抖:点击N次提交按钮,只有最后一次会发出请求。减少无效请求的次数。
2023-06-29

JavaScript节流与防抖实例分析

本篇内容主要讲解“JavaScript节流与防抖实例分析”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“JavaScript节流与防抖实例分析”吧!一、js防抖和节流在进行窗口的resize、sc
2023-06-29

JavaScript中防抖与节流指的是什么意思

这篇文章主要为大家展示了“JavaScript中防抖与节流指的是什么意思”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“JavaScript中防抖与节流指的是什么意思”这篇文章吧。一、函数防抖(d
2023-06-22

JavaScript的防抖和节流怎么实现

这篇文章主要介绍了JavaScript的防抖和节流怎么实现的相关知识,内容详细易懂,操作简单快捷,具有一定借鉴价值,相信大家阅读完这篇JavaScript的防抖和节流怎么实现文章都会有所收获,下面我们一起来看看吧。1. 前言首先来举个例子。
2023-06-29

JavaScript中函数的防抖与节流怎么应用

本文小编为大家详细介绍“JavaScript中函数的防抖与节流怎么应用”,内容详细,步骤清晰,细节处理妥当,希望这篇“JavaScript中函数的防抖与节流怎么应用”文章能帮助大家解决疑惑,下面跟着小编的思路慢慢深入,一起来学习新知识吧。一
2023-06-29

JS防抖节流函数的实现与使用方式

本篇内容介绍了“JS防抖节流函数的实现与使用方式”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!目录一、什么是函数防抖1、为什么需要函数防抖?
2023-06-20

JavaScript函数防抖与函数节流的定义及使用详解

这篇文章主要为大家详细介绍一下JavaScript中函数防抖与函数节流的定义及使用,文中的示例代码讲解详细,对我们学习JS有一定帮助,需要的可以参考一下
2022-11-13

Python数据库的连接实现方法与注意事项

在Python中要连接数据库,首先我们得先安装几个重要的东西,主要有:(1)Python-dev包(2)setuptools-0.6c11.tar.gz(3)MySQL-python-1.2.3.tar.gz 下面分别来说说这三个主要的包的
2022-06-04

PHP实现IP代理服务器的步骤与注意事项

标题:PHP实现IP代理服务器的步骤与注意事项在今天的网络环境中,使用IP代理服务器来隐藏真实IP地址是很常见的做法。本文将介绍如何使用PHP来实现一个简单的IP代理服务器,并分享一些注意事项和代码示例。步骤要实现一个IP代理服务器,
PHP实现IP代理服务器的步骤与注意事项
2024-03-11

Python流程控制语句的技巧与注意事项详解

Python流程控制语句的使用技巧及注意事项Python作为一门高级编程语言,流程控制语句是实现程序逻辑的重要工具。掌握流程控制语句的使用技巧可以提升代码的可读性和效率。本文将介绍Python常用的流程控制语句if、for和while的使
Python流程控制语句的技巧与注意事项详解
2024-01-20

部署Golang应用到服务器的流程与注意事项

Golang部署到服务器的步骤及注意事项Golang作为一种静态类型的编程语言,具有高效、简洁、可扩展性强等特点,在近年来逐渐受到开发者的青睐。当我们完成了Golang项目的开发后,需要将其部署到服务器上,使其可以被运行和访问。本文将介绍
部署Golang应用到服务器的流程与注意事项
2024-01-16

Golang继承方法的实践建议与注意事项

Golang继承方法的使用技巧与注意事项在Golang中,继承是一种非常重要的面向对象编程概念。通过继承,可以创建一个新的类型,并使其获取父类型的属性和方法。本文将介绍Golang中继承方法的使用技巧与注意事项,并附带具体的代码示例。一
Golang继承方法的实践建议与注意事项
2024-01-20

Golang文件删除操作的实施与注意事项

Golang 是一种开源的编程语言,由Google研发,旨在提高开发人员的生产力。在Golang中,删除文件是一项常见的操作,但需要注意一些细节以确保操作的安全和正确性。本文将介绍Golang中删除文件的实现方法,并给出一些注意事项和具体的
Golang文件删除操作的实施与注意事项
2024-02-24

编程热搜

目录