zoukankan      html  css  js  c++  java
  • js的防抖和节流应用

    首先要知道什么场景用防抖,什么场景用节流

    函数防抖:当持续触发事件时,一定时间段内没有再触发事件,事件处理函数才会执行一次,如果设定的时间到来之前,又一次触发了事件,就重新开始延时。

    应用场景:

    1.登录、注册按钮避免用户点击太快,以致于发送了多次请求,需要防抖

    2.mousemove、mouseover鼠标移动事件防抖

    函数节流:控制事件发生的频率,如控制为1s发生一次,甚至1分钟发生一次。

    应用场景:

    1.scroll 事件,滚动监听事件,每隔一秒计算一次位置信息等

    2.高频点击提交,表单重复提交

    vue项目如何快速使用函数防抖和节流

    先创建一个js文件,放到一个文件夹下

    然后复制下列代码。。

    // 防抖
    export const antiShake= (fn, t) => {
        let delay = t || 2000
        let timer
        return function () {
          let args = arguments;
          if (timer) {
            clearTimeout(timer)
          }
          let callNow = !timer
          timer = setTimeout(() => {
            timer = null
          }, delay)
          if (callNow) fn.apply(this, args)
        }
    } 
    
    // 节流
    export const throttle = (fn, t) => {
      var timers = null;            
      return function() {                
          var context = this;               
          var argst = arguments;                
          if (!timers) {                    
              timers = setTimeout(function() {                        
                  fu.apply(context, argst);
                  timers = null;                    
              }, t);
          }            
      }   
    }

    然后就是如何在项目中使用了

    先在script中引入

    在函数中使用防抖,节流同理

    //引入,用几个../看你文件所在位置
    import {antiShake} from '../../utils/utils.js'; //防抖节流
    
    //点击按钮调用防抖
    addMsrwBtn:antiShake(function(){
                
    }),
  • 相关阅读:
    C++ 函数模板&类模板详解
    C++ const修饰不同类型的用法
    C++ 引用Lib和Dll的方法总结
    C#查询本机所有打印机
    C#如何设置桌面背景
    C#使用Aspose.Words把 word转成图片
    查看IP占用
    查看IP占用
    C# Dictionary判断Key是否存在
    C# 只有小时和分钟的两个时间进行对比
  • 原文地址:https://www.cnblogs.com/hupeng1996/p/14653347.html
Copyright © 2011-2022 走看看