防抖和节流

简单概述:
数秒之后方可发送(防抖);
数秒之内只发送一次(节流)。

细节描述:
点击之后,等待指定时间后,并且没有再次点击,方可发送请求(防抖)。
点击之后立即发送请求,等待指定时间后,再次点击,方可再次发送请求(防抖)。

以一个点击事件和发送请求来举例:

<! DOCTYPE html>
<html lang="en">
	<head>
		<title></title>
	</head>
	<body>
		<button onclick="clickSendRequest()">点击发送请求</button>
	</body>
	<script>
		/**
		*	@description 点击发送请求
		*/
		function clickSendRequest(){
			//防抖
			debounce(function(){
				console.log("已发送请求(防抖)")
			}, 1000)()
			//节流
			throttle(function(){
				console.log("已发送请求(节流)")
			}, 1000)()
		}
		
		/**
		*	@description 防抖函数(等待wait时间过后,执行fn回调函数)
		*	@param {function} fn 回调函数
		*	@param {Number} wait 等待时间(等待wait秒后执行)
		*/
		function debounce(fn,wait){
			let timeout;
			return function(){
				clearTimeout(timeout);
				timeout = setTimeout(fn,wait);
			}
		}	
		
		/**
		* @description 节流函数(限制limit秒内执行一次fn回调函数)
		* @param {function} fn 回调函数
		* @param {Number} limit 限制时间(限制limit秒内执行一次)
		*/
		function throttle(fn, limit){
			let inTrottle;
			return function (){
				if(!inTrottle){
					fn();
					inTrottle = true;
					setTimeout(() => {
						inTrottle = false;
					}, limit)
				}
			}
		}
	</script>
</html>
  • 4
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值