博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Javascript-函数节流与函数防抖
阅读量:7038 次
发布时间:2019-06-28

本文共 1303 字,大约阅读时间需要 4 分钟。

函数节流(throttle)

名词解释

函数节流(throttle):连续执行函数,每隔一定时间执行函数

使用场景

鼠标移动,mousemove 事件

DOM 元素动态定位,window对象的resize和scroll 事件
等等...

函数节流(throttle)简单实现

function throttle(fn, delay) {        var last; // 上次执行的时间        var timer; // 定时器        delay || (delay = 250); // 默认间隔为250ms        return function() {            var context = this;            var args = arguments;            var now = +new Date(); // 现在的时间            if (last && now < last + delay) { // 当前距离上次执行的时间小于设置的时间间隔                clearTimeout(timer); // 清除定时器                timer = setTimeout(function() { // delay时间后,执行函数                    last = now;                    fn.apply(context, args);                }, delay);            } else { // 当前距离上次执行的时间大于等于设置的时间,直接执行函数                last = now;                fn.apply(context, args);            }        };    }

函数防抖(debounce)

名词解释

函数防抖(debounce):空闲时间必须大于或等于一定值的时候,才会执行调用方法

使用场景

文本输入keydown 事件

等等...

函数防抖(debounce)简单实现

function debounce(fn, delay) {        var timer; // 定时器        delay || (delay = 250); // 默认空闲时间250ms        return function() {            var context = this;            var args = arguments;            clearTimeout(timer); // 清除定时器            timer = setTimeout(function() { // delay时间后,执行函数                fn.apply(context, args);            }, delay);        };    }

转载地址:http://vgnal.baihongyu.com/

你可能感兴趣的文章
浅谈Android应用保护(一):Android应用逆向的基本方法
查看>>
maven 配置: 修改默认的 .m2仓库 默认存储路径.
查看>>
手机直播连麦技术分析
查看>>
运维之殇
查看>>
System.ServiceModel.CommunicationException: 接收HTTP 响应时发生错误
查看>>
JSP获取spring 的容器ApplicationContext
查看>>
路由器的远程访问
查看>>
PHP 高级编程之多线程(四)-多线程与ZeroMQ
查看>>
Java发送和接收广播的UDP,用于探测局域网中指定类型的设备
查看>>
MySQL 复制过滤详解
查看>>
无法读取此系统上以前注册的服务器的列表。请在“已注册的服务器”窗口中重新注册您的服务器...
查看>>
【COCOS2DX-LUA 脚本开发之九】使用COCOS2DX-LUAPROXY便捷LUA项目快速使用COCOS2DX引擎EXTENSIONS扩展包...
查看>>
【翻译】揭秘:MySQL Pool Scanner(MPS)
查看>>
Fedora 17的root用户登陆图形界面
查看>>
AngularJS 如何做身份验证
查看>>
Struts2常量的配置
查看>>
蚂蚁金服副总裁陆杰讯:搭建安全统一战线,不仅要防守,还要进攻
查看>>
Django自定义上传目录
查看>>
音视频解决方案-如何开通视频点播
查看>>
Ubuntu安装虚拟机
查看>>