函数防抖与节流

本文深入探讨了JavaScript中两种重要的性能优化技术——函数防抖和函数节流。防抖技术确保在一段时间内不重复执行函数,仅在停止触发后的一段时间执行最后一次调用。而节流则保证在特定时间间隔内执行函数,避免频繁调用。通过示例代码,阐述了这两种技术的实现原理和应用场景,帮助开发者优化网页性能。
摘要由CSDN通过智能技术生成

1.函数防抖

当持续触发事件时,一定时间段内没有再触发事件,事件处理函数才会执行一次,如果设定时间之内,又触发了事件,就重新开始延时。也就是说一直触发这个函数,且每次触发函数的间隔小于既定时间,那么防抖的情况下只会执行一次。

	// 防抖
	function debounce (fn, delay = 500){
	  let timeout = null
	  return function () {
	   const argue= arguments
	   if (timeout) clearTimeout(timeout)
	   timeout = setTimeout(() => {
	      fn.call(this,arg)     
	    },delay)   
	  }
	}

2.函数节流

当持续触发事件时,保证在一定时间内只调用一次事件处理函数,也就是说一直触发这个函数,且每次触发小于既定值,函数节流会每隔这个时间调用一次

	// 节流
	function throttle (fn, delay = 500) {
	  let last = 0
	  return function () {
	    const curr = Date.now()
	    if (curr - last > delay) {
	      last = curr
	      fn.apply(this,arguments)
	    }
	  }
	}


简单总结一下防抖和节流的区别:防抖是将多次执行变为最后一次执行,节流是将多次执行变为规定时间内执行

ps:微信搜索‘ITgo’

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值