我是靠谱客的博主 积极蜗牛,最近开发中收集的这篇文章主要介绍【JS】函数防抖和节流【JS】函数防抖和节流,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

【JS】函数防抖和节流

在这里插入图片描述

函数防抖

在一定时间间隔内只触发最后一次函数

应用情况

1.点击按钮触发
2.搜索框输入时触发的请求

代码实现

export default function(func, wait, immediate) {//防抖函数 
  let timeout
  return function(...args) {
    clearTimeout(timeout)
    timeout = setTimeout(() => {
      timeout = null
      if (!immediate) func.apply(this, args)
    }, wait)
    if (immediate && !timeout) func.apply(this, [...args])
  }
}
/* vue中的使用方法
	import Debounce from '@/untils/debounce.js'
	default (){
		…
		methods:{
			getData:Debounce(function(params){// params是当前方法的参数,会传入防抖函数
				//这里放执行代码
			},1000)
		},
		…
	}
	
	PS://请不要用箭头函数等其他写法,会导致this的指向错误,格式请严格按照上面的写法使用
 */

函数节流

在一定时间中只触发一次函数

应用情况

1.滚动框事件
2.函数触发的时间边界处理

代码实现

export default function(func, delay) {     
    let timer = null;     
    let startTime = Date.now();     
    return function() {             
        let curTime = Date.now();             
        let remaining = delay - (curTime - startTime);             
        let context = this;             
        let args = arguments;             
        clearTimeout(timer);              
        if (remaining <= 0) {                    
            func.apply(context, args);                    
            startTime = Date.now();              
        } else {                    
            timer = setTimeout(func, remaining);              
        }      
    }
}

最后

以上就是积极蜗牛为你收集整理的【JS】函数防抖和节流【JS】函数防抖和节流的全部内容,希望文章能够帮你解决【JS】函数防抖和节流【JS】函数防抖和节流所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(35)

评论列表共有 0 条评论

立即
投稿
返回
顶部