vue 应用-防抖-节流

用户多次点击调用接口,用防抖来解决。

防抖和节流的区别:
– 效果:
函数防抖是某一段时间内只执行一次;而函数节流是间隔时间执行,不管事件触发有多频繁,都会保证在规定时间内一定会执行一次真正的事件处理函数。
– 原理:
防抖是维护一个计时器,规定在delay时间后触发函数,但是在delay时间内再次触发的话,都会清除当前的 timer 然后重新设置超时调用,即重新计时。这样一来,只有最后一次操作能被触发。
节流是通过判断是否到达一定时间来触发函数,若没到规定时间则使用计时器延后,而下一次事件则会重新设定计时器。


      
      ```
      节流
  **方法**
  doTest(){
        if(!this.isSaveBut) return this.$message.warning('您没有测试此数据源的权限,请联系管理员添加权限!')
         if(this.timeout){
            clearTimeout(this.timeout)
        }
        this.timeout = setTimeout(() => {
            bus.$emit('doTest')
        }, 500);
        
    },
防抖
function debounce(fn, wait) {
    var timeout = null;      //定义一个定时器
    return function() {
        if(timeout !== null) 
                clearTimeout(timeout);  //清除这个定时器
        timeout = setTimeout(fn, wait);  
    }
}
// 处理函数
function handle() {
    console.log(Math.random()); 
}
// 滚动事件
window.addEventListener('scroll', debounce(handle, 1000));

你可能感兴趣的:(Vue,vue.js,前端,javascript)