首页 > 其他分享 >前端防抖节流

前端防抖节流

时间:2022-11-17 12:15:32浏览次数:57  
标签:function 防抖 节流 前端 点击 timeout 无效 fn


/**
 * 防抖核心代码
 * 逻辑是
 * 第一次点完以后开始计时
 * 如果单位时间内点了的话
 * 不但无效,而且时间从头计算
 *
 * 例如
 * 设置3000毫秒
 * 第一次点完如果3秒内再次点击
 * 不但不触发任何效果,而且3秒从头开始算
 * 如果一直点一直点,就永远无效
 */
function debounce(fn, timer) {
    let timeout = null;
    return function () {
        if (timeout) {
            clearTimeout(timeout);
        } else {
            fn.apply(this, arguments);
        }
        timeout = setTimeout(() => {
            timeout = null;
        }, timer);
    }
}


/**
 * 节流核心代码
 * 逻辑是
 * 第一次点完以后开始计时
 * 如果下次点击时间没达到设定时间
 * 则无效,否则有效
 *
 * 例如
 * 设置3000毫秒
 * 第一次点击完过了1秒点击 判定为无效 立刻记录当前时间
 * 过了2秒点击 与上一次时间对比 不足3秒 判定无效
 * 过了3秒以上点击 与上次时间对比 足够3秒 判定有效 并立刻记录当前时间
 *
 */
function throttle(fn, delay) {
    let begin = 0;
    return function () {
        const current = new Date().getTime();
        if (current - begin > delay) {
            fn.apply(this, arguments);
            begin = current;
        }
    }
}

/** 简单例子 */
bt0.addEventListener('click', click0, false);
bt1.addEventListener('click', debounce(click1, 1000), false);
bt2.addEventListener('click', throttle(click2, 1000), false);

标签:function,防抖,节流,前端,点击,timeout,无效,fn
From: https://www.cnblogs.com/syscn/p/16899012.html

相关文章

  • 前端技术实现文件预览(word、excel、pdf、ppt、mp4、图片、文本)
    前端技术实现文件预览(word、excel、pdf、ppt、mp4、图片、文本)前言因为业务需要,很多文件需要在前端实现预览,今天就来了解一下吧。Demo地址[1]:https://zhuye1993.github......
  • vue纯前端导入excel,获取excel的表格数据渲染el-table并纯前端分页实现方法
    因为项目开发的过程中不是所有的表格数据由后台处理返回,因为有些数据不需要在数据库落地,只做前端页面展示并且获取表格的数据上传即可,所以需要前端纯处理excel的数据。第......
  • vue2中请求函数防抖处理
    ......
  • 前端常见算法
    C:\Users\Administrator\Desktop\手写\01_instanceOf.jsfunctioninstance_of(target,origin){lettargetP=target.__proto__;letoriginP=origin.prototype;......
  • 问题记录-前端开发避坑(7)--vue 原生h5开发及基础组件开发
    问题1问题描述与分析执行vueRouter的编程式导航时,报错:vuerouterTypeError:onCompleteisnotafunction检查发现是参数格式不对。这里使用了对象语法,而我错把qu......
  • 2022_后台前端幕课网
    新建一个项目 vue3 命令 vuecreate****安装后发现版本低 可以使用以下指令升级版本,使支持最新setup语法npmivue@3.2.8vue-router@4.0.11vuex@4.0.2开发前期,......
  • 一个简单的前端可视化监控系统
    背景首先我们为什么要做前端系统呢,先看下面这张表,可以很显然的看出,前端的性能对于产品的价值提升还是蛮有帮助的,但是这些信息如果我们能实时的采集到,并且实施以监控,让整个产......
  • 前端项目开发规范
    工具配置各项配置显而易见,工具能辅助人发现很多潜在问题;非常必要引入依赖:husky、lint-staged、eslint、prettier,使得可以从流程上,保证项目的代码风格统一,规避部分错误,且......
  • 【前端面试】Vue面试题总结(持续更新中)
    由于已经有很多前辈深造VUE的某一块知识,所以我也是大树下好乘凉,进行总结与积累。就有这篇博客,希望对各位面试求职的同学有所帮助。注意:每题都附上链接并不是说要参考这个链......
  • 常见前端开发面试题
    你如何理解HTML结构的语意化?1、去掉或样式丢失的时候能让页面呈现清晰的结构。2、屏幕阅读器(如果访客有视障)会完全根据你的标记来"读"你的网页。3、PDA、手机等设备可能无......